在制作导航条课程中,老师使用了一句很不理解的定义。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的输出也并没有得出明确的结果,反而增加了自己的迷惑程度。
困惑了很久,希望有高手解惑。
柠檬酸钠
慕粉3769977
相关分类