本帖最后由 h123hu 于 2012-04-02 14:11:04 编辑

解决方案 »

  1.   

    你例中的 arguments 是属性 return function() 这边的function的
      

  2.   


    function bind(fn,conText)
    {
        return function()
        {
            return fn.apply(conText,arguments);    //这里的arguments在什么情况下可以用到
        }
    };
    var obj={a:1,b:3};
    var addF=function(x,y){return this.a+this.b+x+y};
    var test=bind(addF,obj);
    alert(test(100,300));bind函数返回一个函数,该返回函数中的this作用域指向bind函数的第二个参数。
    可以理解为bind函数为conText绑定一个函数fn。在bind函数体中arguments与定义fn函数时的参数一致。
    再举个例子:var obj={};
    var init=bind(function(x,y){
        this.x=x;
        this.y=y;
    },obj);
    init(100,200);
    alert(obj.x);
    alert(obj.y);
    PS:求专家指点这种写法的常用场景。