哪位大神帮我看看,为什么arguments[0]() 这个输出的是 undefined ?fn()这个会输出10,为什么 arguments[0]() 就是 undefined 呢?
var len = 10; var obj1 = { len:6, method:function(){ console.log(this.len); } }; var obj2 = { len:5, method:function(fn){ fn();// 这里输出10 arguments[0](); // 这里为什么输出undefined } }; obj2.method(obj1.method,obj2.method);
arguments[0](); 的 this 绑定的是 arguments。
为了避免歧义,再更新一下:
为什么 arguments[0] 和 fun 指向的函数都一样,结果却不同呢?这个和 arguments 和 fun 没有关系,因为 arguments 是一个数组,数组也是一个 Object。
同为 Object 的 Array,this 同样也是指向自身的。