我的问题是:为什么给prototype赋值新的对象的时候,会改变实例化的对象o的constructor?
虽然两种行为中无论是构造函数内的this或者原型对象上的this都指向 实例化的对象,使用上貌似没有什么区别。
但是我还是不明白construtor为什么会被改变。
我的问题是:为什么给prototype赋值新的对象的时候,会改变实例化的对象o的constructor?
虽然两种行为中无论是构造函数内的this或者原型对象上的this都指向 实例化的对象,使用上貌似没有什么区别。
但是我还是不明白construtor为什么会被改变。
原型都置换掉了,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
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
因为上面,你只是在原型对象上添加了一个属性,原型对象还是原配,但是下面你是直接改写了原型对象,是抛弃了原来的,出轨了你新建的那个对象