首先,看看这道题的结果是什么?
var length = 10;
function fn(){
console.log(this)
console.log(this.length);
}
var obj = {
length: 5,
method: function (fn1) {
arguments[0]();
}
};
obj.method(fn, 123);
结果是 2 而并非10;
分析: arguments是类数组,是对象吧 。所以arguments[0](); 即obj.fn() ,明白了吧。
感觉对而不对的悲剧不再会重演。