javascript - 谁能解释一下这个行为?关于constructor?
大家讲道理
大家讲道理 2017-04-11 11:05:29
[JavaScript讨论组]

我的问题是:为什么给prototype赋值新的对象的时候,会改变实例化的对象o的constructor?
虽然两种行为中无论是构造函数内的this或者原型对象上的this都指向 实例化的对象,使用上貌似没有什么区别。
但是我还是不明白construtor为什么会被改变。

大家讲道理
大家讲道理

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

全部回复(5)
迷茫

因为上面,你只是在原型对象上添加了一个属性,原型对象还是原配,但是下面你是直接改写了原型对象,是抛弃了原来的,出轨了你新建的那个对象

天蓬老师

constructor是prototype上一个指向自身的属性,第二种写法直接修改了prototype当然就没有之前的constructor了。

高洛峰

第二种是继承的写法

PHPz

原型都置换掉了,constructor当然就没了啊。

简单理解为

    var a = {}
    var b = a
    b.hello = 'world'
    console.log(a.hello === b.hello)
    //true
    
    或者
    var a = {}
    var b = a
    b = {
        hello: "world"
    }
    console.log(a.hello === b.hello)
    //false
黄舟

只能 aa.prototype.e = ... ;是你没有明白js的规则。 原因上面说的很清楚了。

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

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