下面都是個人理解以及查找的網上的資料,如有不對的地方請指正
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>