JavaScript 之原型的动态性

因为通过原型查找值是一次搜索过程,因此我们对原型所做的任何修改都能够立即从实例上反映出来。即使是先创建了实例在修改了原型也是一样的。直接在控制台进行操作,便于结果展现。


var person = new Person();
Person.prototype.name = "sunny";
function Person(){

}

其原因是因为实例和原型之间松散的连接关系,首先会在实例中搜索name,在没找到的情况下会继续搜索原型。

但是如果重写整个原型对象就不一样了。因为我们调用构造函数时会在实例中添加一个指向原型的指针,而把原型修改为另一个对象就相当于切断了构造函数和原型对象之间的联系

function Person(){

}
var person = new Person();
Person.prototype = {
  name:"cherry",
  sayName:function(){
    alert(this.name);
  }
};
person.sayName();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值