我们正在将 JS 嵌入到我们的应用程序中,我们将使用几十个脚本,每个脚本都分配给一个事件。在这些脚本中,我们提供了一个最小的回调 api,
function onevent(value)
{ // user javascript code here
}
每当该事件发生时都会调用它。脚本必须有自己的全局,因为这个函数总是有相同的名称,我们从 cpp 代码访问它
duk_get_global_string(js_context_duk, "onevent");
duk_push_number(js_context_duk, val);
if (duk_pcall(js_context_duk, 1) != 0)
{
printf("Duk error: %s\n", duk_safe_to_string(js_context_duk, -1));
}
duk_pop(js_context_duk); /* ignore result */
再一次,我们希望允许脚本之间的最小通信,例如
脚本 1
var a = 1;
function onevent(val)
{
log(a);
}
脚本 2
function onevent(val)
{
a++;
}
我们有没有办法做到这一点?也许通过引入一个自己的“ueber-”全局对象,它被定义一次并且在任何地方都可以引用?应该可以从任何脚本向这个“ueber-global object”添加属性,例如
脚本 1
function onevent(val)
{
log(ueber.a);
}
脚本 2
function onevent(val)
{
ueber.a=1;
}