JS中构造函数与原型对象的同名属性,实例会取哪一个

  构造函数与原型对象的同名属性,实例会取哪一个?

  看了下面的过程,再回忆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
原文地址:https://www.cnblogs.com/zhansu/p/7879031.html