2017-09-21 10 views
0

네이티브 함수를 사용하여 클래스 생성자를 구현하는 것은 described in the duktape wiki입니다. 그렇지만 클래스 계층을 구현하는 방법은 없습니다.기본 duktape/C 함수를 사용하는 상속 및 생성자 체인

네이티브 생성자가 파생 클래스에 대해 호출되면 duktape에서 상속 체인을 어떻게 처리합니까?

function Base(){ 
} 

... 

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

가 어떻게 duktape에서 그것을 구현하는 것이 : 자바 스크립트에서 당신은 일반적으로 같은 일을 할 것인가? 우리는 전화 할 방법이 없으므로 duk_call()을 사용할 수 없습니다.

답변

0

그냥 ECMA 스크립트의 예에서와 같은 동작을 원한다면, 당신은 같은 것을 할 것 : 여기 재미있는

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

이 코드는 duk_is_constructor_call'와 기본 생성자 함수()'반환을 호출 할 것'거짓 ', 이는 추가 문제를 일으킨다. 상속 호출의 경우에는 어떻게 받아 들일 수 있습니까? –

+0

그 C 스 니펫은'Base.call (this)'질문에서 Ecmascript 예제와 똑같이 작동해야합니다. ES6 이전에는'super()'호출을 할 수 없었습니다. 일단 Duktape에서 구현되면 C 코드에도 노출되지만 아직 지원되지 않으므로 C 코드도 없습니다. –