原型对象的性质(四):原型的动态性

原型的动态性

1.实例与原型之间的连接是一个指针,而非一个副本

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

var friend=new Person();
Person.prototype.sayHi=function(){
    console.log("hi");
}
friend.sayHi();//"hi"(没有问题)

2.重写原型对象,实例对象指向的仍是最初的原型

function Person(){
    hobby:"painting"
}
var friend=new Person();
Person.prototype={
    constructor:Person,
    name:"Nicholas",
    age:29,
    job:"SoftWare Engineer",
    sayName:function(){
    console.log(this.name);
}
};
console.log(friend.name);//undefined

附:js高程P157关于重写原型对象的图示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yangyuqingabc/article/details/82953420