this對象是在運行時基於函數的執行環境綁定的。在全局函數中,this等於window,而當函數被作爲某個對象的方法調用時,this等於那個對象。也就是說this關鍵字總是指代調用者。
var k = 10 ;
function test(){
this.k = 20 ;
}
//window.test();
window.test();
//alert(test.k); undefined
alert(k);
對於上述的代碼片段,執行以下各測試代碼運行結果:
alert(test.k); //undefined
因爲this對象只會在運行的時候被綁定
test();
alert(test.k); //undefined
因爲this被綁定的是調用這個函數的對象,也就是當前window
test();
alert(window.k); //20
alert(k); //20
實際上是覆蓋了之前申明的全局變量a=10