javascript中this

 下面都是個人理解以及查找的網上的資料,如有不對的地方請指正

This

 

this 始終指向調用它的對象 ,都沒有對象調用時就指向window

另外就是this一般都是在function中,當不在function中的時候  一定是指向window的.

 

當在function中的時候,如果沒有對象調用它還是指向window的

有人覺得this是根據上下文來確定的,反正我不明白這是什麼意思  只要抓住一點 有沒有對象調用它就好了,不管這個this隱藏的有深

 

在function中  當有對象調用這個function的時候  this就指向這個對象了......

 

在js中有一個神奇的方法,他就是call,apply他可以改變this 的指向;

 

還有一中情況就是類了, js中的類就是function嗎,當new一個function的時候就會生成一個對象(也不一定啊 當在某些情況下還會是function  如構造類 現在我說的是基本的)  this 就指向這個對象了

 

 

以上都是針對js語言來說明的  所說的對象也是原生(Native)對象

另外還有宿主(Host)對象  如dom元素

但是原理還是一樣 如果是元素的方法調用的函數 函數裏面的this指向dom元素

<input value="text" id="vv" type="button" onClick="alert(this.id)">

 

 

在使用this 中一些常常會遇見的錯誤 ( 先到這吧  改天在寫)

潛套一各函數會改變this的指向,

解決辦法 定義一個變量保存this

<script type="text/javascript">
var a = "quanju";
function test(){
 this.a = "neibu";
 var _self = this
 (function(){
  alert(_self.a)
 })()
};
new test();

</script>

 

 

發佈了73 篇原創文章 · 獲贊 0 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章