具有原生 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) */
使用本机函数实现 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) */