如果我的javascript文件包含以下内容:
(function() {
return function (foo) {
return foo + "bar";
};
}());
是否有可能以某种方式从变量中捕获该文件的返回值?我假设函数返回到auto实例化parens然后收集垃圾,但我不确定。
顺便说一句,我正在尝试将一个浏览器化的节点模块集合暴露给窗口以进行测试(我意识到可能有其他方法可以解决这个问题,但我很好奇这一点。)
答案 0 :(得分:2)
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 ");
因此var result
的值为"foo bar"
。