原型的动态属性

function Person() {

    }
    var friend = new Person();
    Person.prototype.sayHi = function () {
        return 'Hi';
    };
    alert(friend.sayHi());

  即使Person()实例是在添加新方法之前创建,但他仍然可以访问这个新方法。

我们对原型对象所做的任何修改,都能够从实例上反映出来,即使是先创建了实例后修改原型也照样如此。

调用构造函数时会为实例添加一个指向最初原型的【【prototype】】指针,而把原型修改为另外一个对象就等于切断了构造函数与最初原型之间的联系。实例中的指针仅指向原型,而不指向构造函数,看下面的例子:

原文地址:https://www.cnblogs.com/shenq/p/6360217.html