如果我有一个包含内容的 javascript 文件:
(function() {
return function (foo) {
return foo + "bar";
};
}());
是否有可能以某种方式从变量中捕获该文件的返回值?我假设该函数返回到自动实例化括号,然后进行垃圾收集,但我不确定。
顺便说一句,我正在尝试将浏览器化的节点模块集合公开到窗口以进行测试(我意识到可能还有其他方法可以解决这个问题,但我对这个很好奇)。
如果我有一个包含内容的 javascript 文件:
(function() {
return function (foo) {
return foo + "bar";
};
}());
是否有可能以某种方式从变量中捕获该文件的返回值?我假设该函数返回到自动实例化括号,然后进行垃圾收集,但我不确定。
顺便说一句,我正在尝试将浏览器化的节点模块集合公开到窗口以进行测试(我意识到可能还有其他方法可以解决这个问题,但我对这个很好奇)。
browserify(或其他 CommonJS 兼容系统)包含的文件可以通过module.exports
. module.exports
从require()
语句中返回。
举个例子:
index.js
var myClass = require("myClass");
myClass.js
module.exports = (function() {
return function (foo) {
return foo + "bar";
};
}());
index.js 现在可以访问内置在 myClass.js 中的函数,并且可以将其用作:
index.js
var myClass = require("myClass");
// expose the class to the global scope
window.myClass = myClass;
var result = myClass("foo ");
所以 varresult
会有值"foo bar"
。