原型的动态性

使用构造函数创建实例对象后,如果使用对象字面量对原型赋值将会改变原型地址,而实例上的————proto————依旧指向原来的地址,实例引用的还是最初的原型
···
function Person(name){
this.name = name
}
Person.prototype.sayName=function(){
return this.name}

var a=new Person('frank')
console.log(a.sayName())//'frank'

function Person(name){
this.name = name
}
Person.prototype.sayName=function(){
return 'jack'}

var a=new Person('frank')
console.log(a.sayName())//'jack'
Person.prototype={
sayName:function(){
return 'frank'}}

console.log(a.sayName())//'jack'

上面的例子可以看出在new创建实例后,
对象字面量对原型赋值将会改变构造函数原型地址,
但实例的原型还是最初的原型

你可能感兴趣的:(原型的动态性)