本帖最后由 pkuxmuflsk 于 2011-12-14 19:44:42 编辑

解决方案 »

  1.   

    这是闭包,,
    function(num){
        return function(){
            return num;
        };
    }(i);
    这不是一个匿名方法么,后面一个括号表示调用这个方法,i是参数,然后返回值赋给result[i]
      

  2.   

    感谢您的回复,可是函数的方法调用不是应该放在圆括号里面吗?起码也应该是(function(num){
      return function(){
      return num;
      };
    })(i);才对吧,不加外面的圆括号不是都被认为是函数的声明吗?
      

  3.   

    参考:
    http://www.cnblogs.com/zengxiangzhan/archive/2009/12/02/1615644.html
      

  4.   

    function createFunctions()
    {
            var result=new Array();
            for(var i=0;i<10;i++)
            {
                result[i]=function(num){
                    return function(){
                        return num;
                    };
                }(i);//这块用的是哪门子的语法?看不懂啊!
            }
            return result;
     }
    等价于:
    function createFunctions()
    {
            var result=new Array();
            for(var i=0;i<10;i++)
            {
                //我另声明一个变量(buff)来 暂存
                var buff = function(num){
                    return function(){
                        return num;
                    };
                };
               //这块用的是哪门子的语法?看不懂啊!
                result[i]=buff (i);
            }
            return result;
    }
      

  5.   

    要实现在面 的功能,要用个p 这种写法。
    简直就是脱了库子放屁!
    function createFunctions()
    {
            var result=new Array();
            for(var i=0;i<10;i++)
            {
                      result[i]=i;
            }

    不过,如果要我写客户端代码加密器,
    则会考滤 用算法加密成这种形试。
      

  6.   

    自动调用 匿名函数!
    如楼上所说,这样的代码,没必要那样写!
    直接
     for(var i=0;i<10;i++)
            {
                      result[i]=i;
            }这样多好