Open Eddie-Fannie opened 4 years ago
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); console.log(b.m); console.log(c.n); console.log(c.m);
1 undefined 2 3 这里的b.m为什么不是3呢?是因为调用构造函数会为实例添加一个指向最初原型的[[Prototype]]指针,把原型修改为另外一个对象就等于切断构造函数与最初原型之间的联系
如果是A.prototype.m =3 ;那么输出b.m则为3而不是undefined
原型prototype
第一题