原型动态性
var friend = new Person();
Person.prototype.sayHi= function(){
alert("hi")
}
friend.sayHi()
尽管可以为原型动态的添加属性与方法,并且修改会在所有对象实例中反映出来,但是如果是重写整个原型对象,那么情况就不一样了。我们知道,调用构造函数 会为实例添加一个指向最初原型的[[prototype]]指针,而把原型修改为另一个对象就等于切段了构造函数与最初原型之间的联系。
请记住:实例中指针指向原型,而不指向构造函数。
function Person(){}
var friend = new Person();
Person.prototype ={
constrocter:Person,
name:"Nicholas",
age:29,
job:"software engineer",
sayName:function(){
alert(this.name)
}
}
friend.sayName() // error
ps:摘抄自红宝书