我在嵌入式MCU中使用Duktape。对于测试用例,我有:主.js文件:
(function(){
test();
})();
测试.js文件:
(function test(){
print("func");
})
编译为全局默认代码和主.js都使用duk_call(ctx, 0)执行;
问题是它在调用 test() 函数时会引发错误。
我也尝试过使用
function test() {
print("test");
}
在 test.js代码,但它也不起作用。
我的理解是,这两个文件都有单独的执行上下文。这就是为什么功能无法访问的原因。
但是,将Duktape的代码拆分为多个文件的正确方法是什么?
附言:我的目标是避免使用全局上下文,因为在文档中,据说以这种方式访问变量很慢,这就是为什么main.js看起来那样的原因。
附言我确信test()函数是无法访问的,但我不知道如何编写js代码以便一切正常。
P.P.P.S print() 是一个 C 函数,输出到 esp32 的串行端口,它可以工作。甚至 main.js 在没有 test() 函数调用的情况下工作。
德玛西亚99
相关分类