javascript的this指向
- 作為建構函式的時候的指向
- 作為普通函式的時候執行,誰呼叫,指向誰
- 作為物件屬性執行的時候,指向這個物件
- 使用call、apply、bind的時候,指向被繫結的
var a = { name: 'A', fn: function() { console.log(this.name) } }; // 此時,函式剛剛定義 // 我們還不知道this指向什麼 複製程式碼
執行以下程式碼
a.fn()
的時候,this指向a。
a.fn.call({name: 'B')
指向{name: 'B'}
這個物件
var fn1 = a.fn; fn1(); 複製程式碼
此時的this指向window;因為,它等同於window.fn1();
// 建構函式 function Foo(name) { this.name = name; } // 此時也不知道this的指向 var f = new Foo('zhangsan'); // 此時this指向f 複製程式碼