js继承之------原型式继承

借助原型可以基于已有的对象创建新对象,同时还不必因此常见自定义类型。为了达到这个目的,他给出了如下函数:

function object(o){
  function F(){}
  F.prototype = o;
  return new F();
}

在object()函数内部,先创建一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型,最后返回了这个临时类型的一个新实例。

从本质上讲,object()对传入其中的对象执行了一次浅复制。来看下面的例子:

var person = {
	name : "Nicholas",
	friends : ["Shelby","Court","Van"]
};
vrar anotherPerson = object(person);
anotherPerson.name = Greg";
anotherPerson.friends.push("Rob");
var yetAnotherPerson = object(person);
yetAnotherPerson.name = "Linda";
yetAnoterPerson.friends.paush("Barbie");
alert(person.ridends);//"Shelby,Court,Van,Rot,Barbie"


在没有必要兴师动众地创建构造函数,而只想让一个对象与另一个对象保持类似的情况下,原型式继承是完全可以胜任的。

不过别忘了,包含引用类型值的属性始终都会共享相应的值,就像使用原型模式一样。















































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值