Q19. arguments調用函數this被你忽略了嗎?

首先,看看這道題的結果是什麼?

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() ,明白了吧。
感覺對而不對的悲劇不再會重演。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章