构造函数与原型对象的同名属性,实例会取哪一个?
看了下面的过程,再回忆JS高程3里关于这部分的示意图。实例my在new的时候,本身就获得了a属性,所以my.a是1,倘若在new的时候如果没有赋予a属性,则会从原型上搜索a属性,my.a是2。为什么有这个问题?因为在研究ES6和React中this的时候,碰到了这个易出错的地方。
function A() { this.a = 1; //注释掉这句就从原型上获取了 } A.prototype.a = 2; var my = new A(); console.log(my.a) //1