javascript - 一个奇怪的this指向问题
阿神
阿神 2017-04-10 17:58:25
[JavaScript讨论组]
function haha(){
                this.one=function(){
                    console.log(this)
                }
                this.two=function(){
                    this.one();
                    console.log(this)
                }
                
            }


var hehe = new haha()
hehe.two()

通过对象的属性调用,this不是应该指向这个对象的吗(hehe对象)?
为什么这里会输出两个haha对象呢.

阿神
阿神

闭关修行中......

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

因为hehe是Haha的一个实例名呀。你也可以叫做heihei。。。对于Haha类本身来说它是被调用者,是不感知你给他取什么实例名的。

天蓬老师
function Haha() {
    this.one = function() {
        console.log(this);
    }
    this.two = function() {
        this.one();
        console.log(this);
    }
}

var hehe = new Haha();

// 关于你的疑问
console.log(hehe);

hehe.two();

从上面的代码可以看出 console.log(hehe) 输出的是 Haha 。实例化 Haha 返回的就是一个 Haha 对象,只是赋值给了 hehe 而已

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

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