关于this的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 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积分~
来为老师/同学的回答评分吧