代如下
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重新复制以后,p1依然能访问到自己赋的值?
代如下
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重新复制以后,p1依然能访问到自己赋的值?
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
p1.name = 'Jack';
p2.name = 'Tom';
这里的name 属性是p1 和 p2 两个实例上各自定义的的属性,不会相互影响
感觉可能是理解为这里的name 是原型对象上的属性了。
如果把 p1.name = 'Jack'; 这个注释了,
输出的 p1.name 就是原型对象上的name 属性了,也就是 “Mary”