关于this的问题

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

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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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