this是JS語言的一個關鍵字,只能在函式中執行。this可以指向當前程式碼執行物件本身或者是全域性物件。也可以通過apply()方法改變函式的呼叫物件。下面PHP程式設計師雷雪松詳細的講解下JS中this的用法。
1、在函式中,this就代表全域性物件Global。
var x = 9;
function test(){
console.log(this.x);
}
test();//this指向全域性物件
2、在物件的函式中,this指向物件本身
var obj={};
obj.x = 10;
obj.func = function(){
console.log(this.x);
}
obj.func ();//物件obj,輸出10
console.log(obj);
3、在建構函式生成物件時,this指向新物件。
var x = 2;
function test(){
this.x = 1;
}
var obj = new test();
console.log(obj.x);//物件obj,輸出1
console.log(x);//2
4、apply函式的用法,可以傳物件名,也可以不傳。不傳的時候指向全域性物件。
var x = 0;
var otherObj = {x:10};
function test(){
console.log(this.x);
}
var obj={};
obj.x = 1;
obj.func = test;
obj.func ();//物件o,輸出1
obj.func .apply(); //全域性,輸出0
obj.func .apply(otherObj); //物件otherObj,輸出10
最後,PHP程式設計師雷雪松總結下JS中this用法,如果在函式中執行,就指向全域性物件,在物件中,就指向當前物件本身。
原作者: PHP程式設計師雷雪松