哪位大神帮我看看,为什么arguments[0]() 这个输出的是 undefined ?
var len = 10; var obj1 = { len:6, method:function(){ console.log(this.len); } }; var obj2 = { len:5, method:function(fn){ console.log(fn);// obj1.method fn(); console.log(arguments[0]); arguments[0](); // undefined } }; obj2.method(obj1.method,obj2.method);
this和定义无关,和函数的调用方式有关。把函数当成参数传入,调用的时候直接调用,里面的this就是全局对象。
一周热门 更多>