JS构造函数原型问题

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属性也会被修改吗?


慕哥9229398
浏览 403回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript