在制作導航條課程中,老師使用了一句很不理解的定義。var This = this。window.onload=function(){
????var?aA=document.getElementsByTagName('a');
for(var?i=0;?i<aA.length;?i++){
aA[i].onmouseover=function(){
var?This=this;//疑惑的地方。
clearInterval(This.time);
This.time=setInterval(function(){
This.style.width=This.offsetWidth+8+"px";
if(This.offsetWidth>=160)
clearInterval(This.time);
},30)
}
???????????}這里的this本身就是function的上下文,既this指向的對象為aA【i】。所以定義一個This=this按照我的理解是多此一舉(無視性能壓縮等問題。)但是問題在于,如果我不定義This = this,直接使用this.time或者使用this獲取諸如width等屬性是獲取不到的。。。所以導致后面的所有代碼都失去了原有的效用。在chorme瀏覽器中進行cosolelog的輸出也并沒有得出明確的結果,反而增加了自己的迷惑程度。困惑了很久,希望有高手解惑。
關于this的問題。對函數上下文感到極端尷尬..
MadMarical
2016-08-14 16:53:38