关于this的指向问题
生活随笔
收集整理的這篇文章主要介紹了
关于this的指向问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一個關(guān)于this指向而引發(fā)的血案。。。
在測試this指向的程序中,我寫錯了id對象,結(jié)果呢,居然也有效果,這真是超于我意料之外太多了,我以為自己寫錯了,結(jié)果一樣可以用。。。。。。。
<div id="bbb">show</div> <script>// window.onload = function(){// //// var s = document.getElementById('bbb');// s.onclick = showThis;//this == div#show // bbb.onclick = function(){// console.log(showThis);//返回的是定義showThis的內(nèi)容// showThis();//this = window// } // // showThis();//this = window// }// function showThis(){// console.log(this);// }window.onload = function(){//直接使用id的方式調(diào)用方法,ie7,8,9,10,11,都支持,只不過ie7都返回object,其他都是[object Window],[object HTMLDivElement]bbbvar s = document.getElementById('bbb');s.onclick = showThis;//this == div#show bbb.onclick = function(){showThis();//this = windowalert(this+'bbb')} // showThis();//this = window}function showThis(){alert(this);} </script>做一點總結(jié):?window.onload = function(){
//直接使用id的方式調(diào)用方法,ie7,8,9,10,11,都支持,只不過ie7都返回object,其他都是[object Window],[object HTMLDivElement]bbbvar s = document.getElementById('bbb');console.log(s[onclick])// s.onclick = showThis;//this == div#shows.onclick = showThis;//實際上是把showThis的內(nèi)容賦值給s.onclick,在未賦值前,s[onclick]為undifineds.onclick = showThis();//實際上和showThis()一樣,也沒有返回值,這樣的方式其實在onclick為賦值前,showThis已經(jīng)執(zhí)行了;s.onclick = function(){//也是賦值,但是因為showThis是在外面定義的,所以showThis的this還是windowshowThis()}s.onclick = function(){//相當(dāng)于s.onclick = showThis;也是賦值alert(this)}// s.onclick = showThis();// bbb.onclick = function(){// showThis();//this = window// alert(this+'bbb')// } // showThis();//this = window}function showThis(e){alert(this);}
轉(zhuǎn)載于:https://www.cnblogs.com/bestsamcn/p/5498048.html
總結(jié)
以上是生活随笔為你收集整理的关于this的指向问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux开发】linux设备驱动归纳
- 下一篇: Expressions are not