gpt4 book ai didi

javascript - 继承父构造函数参数

转载 作者:IT王子 更新时间:2023-10-29 03:13:27 24 4
gpt4 key购买 nike

我正在浏览类似主题的讨论,但找不到我的情况...

我正在尝试使用参数调用父构造函数......似乎无法正确完成。

我有一个 PhysicsBody 父类(super class),它将 aNode 作为其唯一的构造函数参数:

function PhysicsBody(aNode) {
this.userData = aNode;
// ...
}

这个PhysicsBody继承了一个DynamicBody类。构造函数是否也将 aNode 作为唯一参数...就像我在 Java 中做的那样,我喜欢调用等同于 "super(aNode"); 的东西可以' 似乎找到了方法。

这是 DynamicBody 类:

// Wanted to give "new PhysicsBody(this, aNode)", but that fails!
DynamicBody.prototype = new PhysicsBody();
DynamicBody.prototype.constructor=DynamicBody;

function DynamicBody(aNode) {

// calling the parent constructor fails too:
// PhysicsBody.prototype.constructor.call(this, aNode);
//...
}

最佳答案

一种方法:

function PhysicsBody( aNode ) {
this.userData = aNode;
}

PhysicsBody.prototype.pbMethod = function () {};

function DynamicBody( aNode ) {
PhysicsBody.call( this, aNode );
}

// setting up the inheritance
DynamicBody.prototype = Object.create( PhysicsBody.prototype );

DynamicBody.prototype.dbMethod = function () {};

现在,当你这样做的时候

var pb = new PhysicsBody( '...' );

实例 pb 获得了一个 userData 属性并且还继承了 PhysicsBody.prototype 的方法(pbMethod 在这种情况)。


当你做的时候

var db = new DynamicBody( '...' );

实例 db 获得了一个 userData 属性并且还继承了 DynamicBody.prototype 的方法(dbMethod 在在这种情况下),它又继承自 PhysicsBody.prototype

关于javascript - 继承父构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com