javascript - 求解答下关于这段代码的困惑
黄舟
黄舟 2017-04-11 13:22:48
[JavaScript讨论组]


obj具体是谁?看到下面有个currentLight(this);难道是window吗?那样有什么作用
平时看到的都传个变量或者具体的值 这个真的让我懵逼了!
还有 这个lightItem.onOroff = false;听别人说这个onOroff是自己定义的一个属性,以前总以为要先定义一个obj对象才可以 自定义一个属性。像这样没有obj对象自定义的属性应该看Js高程的那个章节?前端小白求解答

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
巴扎黑
lightItem.onclick = clickItem;
...
...
function clickItem() {
    currentLight(this);
    if (flag == 0) {
        alert('YOU WIN! GO ON!')
        level += 5;
        init();
    }
}

你就把它看成

lightItem.onclick = function() {
    currentLight(this);
    if (flag == 0) {
        alert('YOU WIN! GO ON!')
        level += 5;
        init();
    }
}

如果是普通OO写法就是类似

function ClassA(){
    this.onclick = function(){
        //balabalabala....
        console.log(this);
    }
}
var a = new ClassA();
a.onclick();//this 必然是指向ClassA的实例a啦。

综上所述,问题中this也就是指向被点击的某个p(lightItem)啦
关于lightItem.onOroff = false的问题,lightItem也是一个obj啦,只不过不是你自己定义的,它是一个p,但是这不影响你可以在它上面随意的添加自己定义属性哟。

伊谢尔伦

调用函数的时候传入的参数是谁,obj就是谁,currentLight(lights[rand]);,obg就是lights[rand];currentLight(this);obj应该是你点击的对象,没看到这个函数在哪里调用的。

迷茫

obj 指 lights 数组中的某一个元素 或者 lightItem.onclick 你点击的这个元素,currentLight(this)中的 this 指 lightItem.onclick 你点击的这个元素,lightItem.onOroff = false 指你自己定义的 lightItem 对象的一个属性

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号