JS中this用法詳解?

Tags: 物件, 用法,

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程式設計師雷雪松

相關問題答案