createMyFunction()返回是一个新的function其实就是把add(a,b) 变成新的function  function(a,b,a+b);Function(10, 2, return 10 + 2;)

解决方案 »

  1.   

    javascript真的很难以理解 象这样难以理解的代码多的去了 不过一般很少用
      

  2.   

    javascript真的很难以理解?====没有这个感觉,倒是浏览器的差别可以让人烦死,所以我放弃,只管IE。
      

  3.   

    function createMyFunction(myOperator)
    {
      return new Function("a", "b", "return a" + myOperator + "b;");
    }
    var add=createMyFunction("+");
    你可以这样理解:
    function createMyFunction(myOperator)
    {
      return function(a, b){return eval(a + myOperator + b);}
    }
    由于变量作用域,myOperator 贯穿到了你返回的那个函数体里并被固化了下来。
    这个时候的 add 变成了:
    var add = function(a, b){return eval(a + b);}
    是一个函数
      

  4.   

    直接写这样得了<script type="text/javascript">
    //<![CDATA[
     function fNumOpt(arg){
      return eval(arg);
     }
     
     alert(fNumOpt('1+2'));
     alert(fNumOpt('1*2'));
     alert(fNumOpt('1/2'));
     alert(fNumOpt('1-2'));
     
    //]]>
    </script>
      

  5.   

    倒...
    更直接
    alert(1+2)
    ...
      

  6.   

    在javascript中,函数可以当作一种数据类型,也就是说我们可以任意引用这个函数,
    你可以参考后两种方式:function f(x) { return x*x; }              // function statement
    var f = new Function("x", "return x*x;");  // Function( ) constructor
    var f = function(x) { return x*x; };       // function literal
      

  7.   

    大概明白了  但是这句 由于变量作用域,myOperator 贯穿到了你返回的那个函数体里并被固化了下来。我有糊涂了
      

  8.   

    又明白了一点点,,,才发现 meizz 的功底很深啊!