JavaScript继承方式(1)

  前段时间温故了下JS OO之写类方式,从这篇开始我们看看JS OO之继承方式。

  面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看JS的继承方式。JS中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行JS库继承方式也各不相同。从最简单的复用开始。

  1、构造函数方式写类,通过方法调用复制父类属性/字段到子类 实现继承

  这里父类,子类都采用构造函数方式写,不用原型。子类调用父类函数来复制父类的属性。

/**
* 父类Polygon:多边形
* @param {Object} sides
*/
function Polygon(sides) {
this.sides = sides;
this.setSides = function(s) {this.sides=s;}
}

/**
* 子类Triangle:三角形
*/
function Triangle() {
this.tempfun = Polygon;//父类引用赋值给子类的一个属性tempfun
this.tempfun(3);//调用
delete this.tempfun;//删除该属性
this.getArea = function(){};
}

//new个对象
var tri = new Triangle();
console.log(tri.sides);
//继承的属性
console.log(tri.setSides);//继承的方法
console.log(tri.getArea);//自有的方法

//缺点是对于Triangle的实例对象用instanceof为父类Polygon时是false
console.log(tri instanceof Triangle);//true
console.log(tri instanceof Polygon);//false

it知识库JavaScript继承方式(1),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。