function Person() {}
Person.prototype.name = 'Nicholas';
const p1 = new Person();
console.log(p1.name); // Nicholas
p1.name = 'Greg';
console.log(p1.__proto__.name); // Nicholas
// 为什么上面输出不是 'Greg'
代码如上。name
属性是在构造函数Person
的原型上的。当我实例化p1
时,修改了name
的值,因为p1
实例本身没有name
属性,所以就会去原型上找。而p1
实例对原型是一种引用,所以按照正常逻辑,不应该原型上的name
属性也会被修改吗?
相关分类