Eddie-Fannie / qd-interview-question

前端面试题
0 stars 0 forks source link

原型prototype #1

Open Eddie-Fannie opened 4 years ago

Eddie-Fannie commented 4 years ago

原型prototype

第一题

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);
Eddie-Fannie commented 4 years ago

第一题解答

1 undefined 2 3 这里的b.m为什么不是3呢?是因为调用构造函数会为实例添加一个指向最初原型的[[Prototype]]指针,把原型修改为另外一个对象就等于切断构造函数与最初原型之间的联系

如果是A.prototype.m =3 ;那么输出b.m则为3而不是undefined