首先,看看這道題的結果是什麼?
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() ,明白了吧。
感覺對而不對的悲劇不再會重演。