this 是 JavaScript 語言的一個關鍵字。app
它是函數運行時,在函數體內部自動生成的一個對象,只能在函數體內部使用。函數
function test() { this.x = 1; }
上面代碼中,函數 test 運行時,內部會自動有一個 this 對象能夠使用。this
函數的不一樣使用場合,this 有不一樣的值。spa
總的來講,this 就是函數運行時所在的環境對象。code
function test(){ this.x = 1; alert(this.x); } test(); // 1
function test(){ alert(this.x); } var o = {}; o.x = 1; o.m = test; o.m(); // 1
function test(){ this.x = 1; } var o = new test(); alert(o.x); // 1
運行結果爲1對象
爲了代表這時 this 不是全局對象,對代碼作如下改變:blog
var x = 2; function test(){ this.x = 1; } var o = new test(); alert(x); //2
var x = 0; function test(){ alert(this.x); } var o={}; o.x = 1; o.m = test; o.m.apply(); //0 //apply()的參數爲空時,默認調用全局對象。所以,這時的運行結果爲0,證實this指的是全局對象。若是把最後一行代碼修改成 o.m.apply(o); //1