0

我是 JavaScript 新手,当我有一个带参数的构造函数时,我试图了解继承。

假设我有一个名为的基础对象Base

function Base(param1, param2) {
   // Constructor for Base that does something with params
}

我想要另一个对象,例如BaseChild从 Base 继承的名为的对象,然后Child是从BaseChild.

我将如何为BaseChildChild使用基本 JavaScript(即没有特殊插件)创建构造函数?


笔记:

我认为您可以按如下方式创建 BaseChild:

var BaseChild = new Base(param1, param2);

但我没有param1or param2in的值BaseChild,只有 in Child。我希望这是有道理的!。

4

1 回答 1

1
// define the Base Class
function Base() {
   // your awesome code here
}

// define the BaseChild class
function BaseChild() {
  // Call the parent constructor
  Base.call(this);
}

// define the Child class
function Child() {
  // Call the parent constructor
  BaseChild.call(this);
}


// inherit Base
BaseChild.prototype = new Base();

// correct the constructor pointer because it points to Base
BaseChild.prototype.constructor = BaseChild;

// inherit BaseChild
Child.prototype = new BaseChild();

// correct the constructor pointer because it points to BaseChild
Child.prototype.constructor = BaseChild;

使用Object.create的替代方法

BaseChild.prototype = Object.create(Base.prototype);
Child.prototype = Object.create(BaseChild.prototype);
于 2013-08-07T09:35:56.657 回答