关于this的问题
function byId(id){ return typeof(id) ==="string"?document.getElementById(id):id; } var banner=byId("banner"); var timer=null; var index=0; var pics=banner.getElementsByTagName("div"); var dots=byId("dots").getElementsByTagName("span"); var len=pics.length; function slideImg(){ // 鼠标停留 var main=byId("main"); main.onmouseover=function(){ if(timer){ clearInterval(timer); } } // 鼠标离开 main.onmouseout=function(){ timer=setInterval(function(){ index++; if(index>=len){ index=0; } changeImg(); },1000) } main.onmouseout(); //下一章图片按钮 next.onclick=function(){ index++; if(index>=len){ index=0; } changeImg(); }//上一张图片 prev.onclick=function(){ index--; if(index<0){ index=2; } changeImg(); }//原点按钮 for(var dot=0;dot<len;dot++){ dots[dot].id=dot; dots[dot].onclick=function(){ alert(dots[dot].id); } } } function changeImg(){ for(var i=0;i<len;i++){ pics[i].style.display="none"; if(i==index){ pics[i].style.display="block"; } } } slideImg();
为什么用this.id才能打印出对应的id,难道this指的当前对象不是dots[dot]吗,表示疑问
6
收起
正在回答
1回答
同学你好,this是指dots[dot]。关于this的问题,在之前同学的提问中,已经给同学解释过,如:http://class.imooc.com/course/qadetail/133424,在function中使用function外定义的变量时,不使用this调用,则使用的是这个变量最终的值。同学可以再去看一下之前的回答。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星