鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 關(guān)于prototype的一個小問題

關(guān)于prototype的一個小問題

代如下

function Person(){}

Person.prototype.name = 'Mary';

var p1 = new Person();
var p2 = new Person();

p1.name = 'Jack';
p2.name = 'Tom';

console.log(p1.name);
console.log(p2.name);

控制臺輸出為

Jack
Tom

name屬性為原型對象擁有,為什么p2重新復(fù)制以后,p1依然能訪問到自己賦的值?

回答
編輯回答
孤巷

p1.name = 'Jack';
p2.name = 'Tom';
這里的name 屬性是p1 和 p2 兩個實例上各自定義的的屬性,不會相互影響
感覺可能是理解為這里的name 是原型對象上的屬性了。

如果把 p1.name = 'Jack'; 這個注釋了,
輸出的 p1.name 就是原型對象上的name 屬性了,也就是 “Mary”

2018年7月19日 05:12
編輯回答
命于你

兒子沒錢的時候就找老子要,兒子有錢了當然就不用了。

2017年1月21日 15:52
編輯回答
懶豬

原型對象擁有的,可以在實例對象中覆蓋。JS 會先找實例對象中指定名稱的屬性(或方法)如果找不到,再從原型鏈去依次查找。

2017年3月8日 06:35
編輯回答
舊螢火

因為這是2個對象啊。。。。

2018年7月29日 16:07