关于this的问题

关于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();

http://img1.sycdn.imooc.com//climg/5d2fe7ef0001b72e04420159.jpg

为什么用this.id才能打印出对应的id,难道this指的当前对象不是dots[dot]吗,表示疑问

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,this是指dots[dot]。关于this的问题,在之前同学的提问中,已经给同学解释过,如:http://class.imooc.com/course/qadetail/133424,在function中使用function外定义的变量时,不使用this调用,则使用的是这个变量最终的值。同学可以再去看一下之前的回答。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师