具有原生 duktape/C 函数的继承和构造函数链

Inheritance and the constructor chain with native duktape/C functions

使用本机函数实现 class 构造函数是 described in the duktape wiki。然而,遗漏的是如何实现 class 层次结构。

当您的原生构造函数被派生调用时 class,您如何处理 duktape 中的继承链?在 Javascript 你通常会做这样的事情:

function Base(){
}

...

function SubClass(){
    // Call super constructor.
    Base.call(this);
}

你会如何在 duktape 中实现它?我们不能使用 duk_call() 因为我们没有方法可以调用。

如果您只想要与 Ecmascript 示例中相同的行为,您可以这样做:

duk_get_global_string(ctx, "Base");
duk_push_this(ctx);
duk_call_method(ctx, 0);  /* = Base.call(this) */