在制作導(dǎo)航條課程中,老師使用了一句很不理解的定義。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】。所以定義一個(gè)This=this按照我的理解是多此一舉(無視性能壓縮等問題。)但是問題在于,如果我不定義This = this,直接使用this.time或者使用this獲取諸如width等屬性是獲取不到的。。。所以導(dǎo)致后面的所有代碼都失去了原有的效用。在chorme瀏覽器中進(jìn)行cosolelog的輸出也并沒有得出明確的結(jié)果,反而增加了自己的迷惑程度。困惑了很久,希望有高手解惑。
關(guān)于this的問題。對函數(shù)上下文感到極端尷尬..
MadMarical
2016-08-14 16:53:38