在V8 Javascript引擎中,如何使用C ++ API将FunctionTemplate作为另一个FunctionTemplate的属性添加?

时间:2016-06-21 01:20:00

标签: javascript c++ v8

我有一个函数设置为在调用

时返回一个包装好的C ++对象
new MyClass();

但我想也能说

MyClass.do_something();

我知道如何在纯javascript中做我想要的事情:

MyClass.prototype = { do_something: function(){}};

但我如何在C ++中做同样的事情?

我知道v8 :: FunctionTemplate上的InstanceTemplate()和PrototypeTemplate()方法,但这些方法似乎只用于创建调用new MyClass()时返回的新对象。我如何获得实际功能的原型?

谢谢。

我看过这篇文章,但不确定它是否相关:Add a function template to a global object prototype in v8

1 个答案:

答案 0 :(得分:1)

事实证明我是想要解决这个问题。

你只需在你的v8 :: FunctionTemplate上调用.Set()并传入另一个v8 :: FunctionTemplate作为值。

my_constructor_function_template.Set("static_method_name", static_method_function_template);