【NAPI】在 class binding 的方法中,能否支持直接透传递当前类的 shared_ptr<CtxValue> 指针?
JimmyVV opened this issue · comments
Is your feature request related to a problem? Please describe.
现在遇到一个问题,通过一个类方法去创建另外一个类时,子对象需要有个属性指像创建对象。
但现在的设计下,没有办法做到
let mediaElemenet = new MediaElement();
mediaElement.maxSize = 2000;
let context = mediaElement.getContext();
context.element.maxSize;
Describe the solution you'd like
这里希望在方法中,能够有办法获得当前实例对象的指针。
FunctionDefine<MediaElement> addPath;
addPath.name = "addPath";
addPath.callback = [weak_scope](MediaElement *thiz,
size_t argument_count,
const std::shared_ptr<CtxValue> arguments[],
std::shared_ptr<CtxValue> &exception) -> std::shared_ptr<CtxValue> {
auto scope = weak_scope.lock();
if (!scope) {
return nullptr;
}
auto context = scope->GetContext();
if (argument_count == 0) {
exception = context->CreateException("Path2D::addPath need to have at least 1 argument");
return nullptr;
}
auto context_class = scope->GetJavascriptClass("MediaContext");
// @note: 能否有全局方法实现?
std::shared_ptr<CtxValue> argv[] = {
// thiz->Holder()
};
auto context = context->NewInstance(context_class, 1, argv, nullptr);
return context;
};
Describe alternatives you've considered
Additional context