javascript中子类如何继承父类

Posted lele

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中子类如何继承父类相关的知识,希望对你有一定的参考价值。

参考阮一峰的文章:http://javascript.ruanyifeng.com/oop/inheritance.html#toc4

function Shape() {
  this.x = 0;
  this.y = 0;
}

Shape.prototype.move = function (x, y) {
  this.x += x;
  this.y += y;
  console.info(‘Shape moved.‘);
};

function Rectangle() {
  Shape.call(this); // 调用父类构造函数
}
// 另一种写法
function Rectangle() {
  this.base = Shape;
  this.base();
}

// 子类继承父类的方法
Rectangle.prototype = Object.create(Shape.prototype);
Rectangle.prototype.constructor = Rectangle;

var rect = new Rectangle();

rect instanceof Rectangle  // true
rect instanceof Shape  // true

rect.move(1, 1) // ‘Shape moved.‘

上面代码表示,构造函数的继承分成两部分,一部分是子类调用父类的构造方法,另一部分是子类的原型指向父类的原型。

上面代码中,子类是整体继承父类。有时,只需要单个方法的继承,这时可以采用下面的写法。

ClassB.prototype.print = function() {
  ClassA.prototype.print.call(this);
  // some code
}

上面代码中,子类Bprint方法先调用父类Aprint方法,再部署自己的代码。这就等于继承了父类Aprint方法。

以上是关于javascript中子类如何继承父类的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript实现继承的方法

JavaScript中子类调用父类方法的实现

javaScript基础

java中一个子类是不是可以继承父类的构造方法

JavaScript实现多重继承

java 代码片段