我一直在使用 SpiderMonkey C API,并希望使用他们的 API 在 C 中实现闭包。我想实现的那个相当复杂,但我什至不知道如何做一个简单的,例如:
function x() {
var i = 0;
return function() { i++; print(i); };
}
var y = x();
y(); //1
y(); //2
y(); //3
我想知道是否有人知道我该怎么做。我找到了 JS_NewFunction 方法,但实际上我不知道这是否是朝着正确方向迈出的一步。任何帮助将不胜感激,谢谢!
最佳答案
我不知道是否有纯 C 的闭包方式。不过,如果可以的话,我建议只在 javascript 中实现所需的功能,并简单地评估 JSAPI 中的 javascript 文本。从那里,使用 JSAPI 获取实现主机功能所需的任何句柄/变量。使用 JSAPI 做 javascripty 的事情真的很繁重,如果可以的话请避免它。
关于javascript - 如何使用 SpiderMonkey API 实现闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/527100/