在制作导航条课程中,老师使用了一句很不理解的定义。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的输出也并没有得出明确的结果,反而增加了自己的迷惑程度。困惑了很久,希望有高手解惑。
添加回答
举报
0/150
提交
取消