javascript - this指向
大家讲道理
大家讲道理 2017-04-11 09:23:06
[JavaScript讨论组]

为啥这个输出的是全局啊,麻烦各位大神说的详细一点

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(5)
大家讲道理

简单来说是因为函数中this指向调用这个方法的对象, 但是在saySex:function(){}中,并没有明确的对象调用getSex(),所有默认是window在调用;


var obj = {
    ...
    saySex:function(){
        console.log(this) //此处this指向obj,因为你能够调用saySex,必然是obj.saySex()通过obj调用;
        //getSex()在saySex函数内部定义的函数,作用域在函数内部,所以对于是谁在调用saySex,getSex无法知道,除非你告诉它;
        var that = this;
        function getSex(){
            console.log("this.sex=" + this.sex);
            console.log(that.sex); //此处可以取到你想要的值;
        }
        getSex(); //此处并没有明确的对象调用getSex,所以默认全局调用;
    },

...
}
巴扎黑

this 指 window

ringa_lee

默认的指向是window啊。你的getSex又么有绑在对象上

PHP中文网

你这个this指的不是window,指的是当前那个对象,具体可以看看我那个博客里面关于this那一段,你就明白了.https://1657413883.github.io/...

ringa_lee

具体不是很清楚 要留住this
http://p.io/topic/809

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

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