1. 程式人生 > >JavaScript中的this學習筆記

JavaScript中的this學習筆記

《JavaScript中this關鍵字詳解》

this指向函式執行時的當前物件,而與宣告環境無關

var someone = {
    name: "Bob",
    showName: function(){
        alert(this.name);
    }
};
var other = {
    name: "Tom",
    showName: someone.showName
}
other.showName();  //Tom

解析:呼叫show函式時,沒有明確的當前物件

var name = "window";
varBob = {
    name: "Bob",
    showName: function(){
        alert(this.name);
    }
};
varTom = {
    name: "Tom",
    showName: function(){
        var fun = Bob.showName;
        fun();
    }
};
Tom.showName();  //window
解析:雖然不是在window中,而是在Tom物件中,但是沒有明確的當前物件,所以this指向window

《深入淺出JavaScript中的this》

函式的呼叫可以有幾種方式

  1. 作為物件方法呼叫,this指向這個物件
  2. 作為函式呼叫,this指向全域性物件
function say(){
    console.log(this);
};
say(); // 雖然簡單,但這就是作為函式呼叫,也就是上面說的沒有明確物件