javascript中的this講解

下面將this的一些基本使用和大家分享一下:

查看this指向的一句話法則:

永遠指向其所在函數的所有者如果沒有所有者時,指向window。

理解this的要點:關鍵在于將函數與函數名分開看待。同一個函數,在不同的執行方法下,會有不同的效果。

如何來進行理解呢,來看幾個實例

1)全局函數中的this指向

functiontest(){

alert(this);//test這個函數沒有所有者,因此此時this指向的是window

}

2)對象方法中的this指向

o.test=function(){

alert(this==o);//輸出true,o.test表示的是test這個函數的所有者是對象o,因此this應當是指向o的

}

3)綁定函數時的this 1

如下代碼,test1和test2中this并不相同

vartest2=o.test1;//test2這個函數并沒有所有者,在此,test2雖然調用了test1這個函數,但是this仍然指向window,而不是指向test1的擁有者:對象o

test2();

o.test1=function(){

alert(this===o);

}

這便是上面所說的,要將函數與函數名分開看待

4)綁定函數時的this 2

此時如果我們對3)中的代碼進行一些修改:

ffunctiontest(){

alert(this===o);

}

test();//this指向window

varo={};

o.test2=test;

o.test2();//此時test2的所有者為o,而test沒有所有者,this在此時指向的是o

alert(o.test2);

5)鼠標單擊事件等進行函數的綁定時,this的指向

document.onclick=function(){

alert(this===document);//輸出為true,onclick事件的擁有者是document。因此,此處this指向document。我們可以將document.onclick理解為一個對象方法,如同例4中的o.test2一樣。

}


參考鏈接:http://blog.163.com/hongshaoguoguo@126/blog/static/18046981201251935720333/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容