<script>
    function a()
{
var b=5;
return new function(){
var i=2
return new function (){
var x= 5
alert(b + i + x);
}
}
}
document.onclick = a
</script>

解决方案 »

  1.   

    这其实也就是相当于java中的匿名类了   new function() 算是创建了一个对象  这里的结果就是计算三个数的和
      

  2.   

    应该这么理解吧 希望对你有用呵呵
    JS很久没用过
    b=5时 或者 i=2时 跳出这个function a()执行new function()  只有当x=5时才执行alert(b+i+x);
      

  3.   

    完全可以理解成:
    <script> 
       function a() 
       { 
           var b=5; 
           var i=2;
           var x=5;
           alert(b + i + x); //显示三个数相加的结果为:12
       } 
       document.onclick = a ;//点击网页触发函数a执行
    </script>
      

  4.   

    javascript中,每一个函数都是一个对象,可以作为参数传递出去。
    这段代码应该是用来演示函数作用域的。
    函数内部的函数可以获取其上一层的函数定义的变量值。最终代码的意思就是点击页面,弹出提示框,显示 b + i + x 的值。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    </body>
    </html>
    <script>
    function a()
    {
    //这是函数a
    var b=5;

    //下面这个函数作为对象被返回给了函数 a
    return new function (){
    //这是一个函数直接量,被直接执行
    //这里能获得 b 的值
    var i=2

    //下面这个函数作为对象被返回
    return new function (){
    //这是一个函数直接量,被直接执行
    //这里能获得 b 和 i 的值
    var x=5
    alert(b+i+x);
    }
    }
    }
    document.onclick=a
    </script>