关于原型链的一个问题
来源:15-9 原型和原型链-原型链
慕仔1661316
2019-06-12
var A=function(){}
A.prototype.n=1
var b=new A()
A.prototype={
n:2,
m:3
}
var c=new A()
console.log(b.n,b.m,c.n,c.m)//1,undefined,2,3
b是Anew出来的,也就是b.proto == A.prototype; 现在A.prototype.m==3,为什么b却找不到m呢.b.n还是1,麻烦老师能解答一下吗
写回答
1回答
-
双越
2019-06-12
这种情况我没有遇到过,也强烈不推荐这么写代码。构造函数和原型必须先确定,然后再 new 实例,禁止中途再增加原型。
根据你描述的情况,只能解释为 new 实例的时候,是以当前的构造函数原型为准,后续改变了不会影响前者。
最后,实际项目开发中千万别别这么写。
012019-06-12
相似问题