JS继承之寄生继承

JavaScript继承还有一种继承模式——寄生继承。
举个例子:

function object(o) {
  function F() {};
  F.prototype = o;
  return new F();
}
var twoD = {
  name: '2D shape',
  dimensions: 2
}
function triangle(s, h) {
  var that = object(twoD);
  that.name = 'Triangle';
  that.getArea = function() {return this.side*this.height / 2;}
  that.side = s;
  that.height = h;
  return that;
}

var a = triangle(2,16);
a.dimensions

寄生继承首先将一个普通对象twoD克隆进一个叫that的对象,然后扩展that对象,添加更多的属性,最后返回that对象。这种寄生继承就是对原型继承的第二次封装,并且在这第二次封装过程中对继承的对象进行了拓展,这项新创建的对象不仅仅有父类中的属性和方法而且还有新添加的属性和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值