H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】谁能解释一下这个行为?关于constructor?

clipboard.png

clipboard.png

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

回答:

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

回答:

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

回答:

第二种是继承的写法

回答:

原型都置换掉了,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的规则。 原因上面说的很清楚了。

本文地址:H5W3 » 【前端问题精选】谁能解释一下这个行为?关于constructor?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址