我們用例子來說明問題
隱式轉(zhuǎn)換
var id = 10;
function a() {
console.log(this.id);
};
var obj2 = {
id: 30
}
var obj1 = {
id: 20
}
a.call(obj2);//30
a.call(obj1);//20
//a函數(shù)內(nèi)的this指向隨著call的指向而變化
顯示轉(zhuǎn)換
var id = 10;
function a() {
console.log(this.id);
};
var obj2 = {
id: 30
}
var obj1 = {
id: 20
}
//使用bind之后, 返回的函數(shù)內(nèi)部this定死, 無法再改變this
var b = a.bind(obj2);//返回一個(gè)函數(shù)
b.call(obj1);//30
b();//30
new
function a() {
this.a = 1;
this.b = 2;
}
var a1 = new a();
//this指向?qū)ο?