0

如果我有一个包含内容的 javascript 文件:

(function() {
  return function (foo) {
    return foo + "bar";
  };
}());

是否有可能以某种方式从变量中捕获该文件的返回值?我假设该函数返回到自动实例化括号,然后进行垃圾收集,但我不确定。

顺便说一句,我正在尝试将浏览器化的节点模块集合公开到窗口以进行测试(我意识到可能还有其他方法可以解决这个问题,但我对这个很好奇)。

4

1 回答 1

2

browserify(或其他 CommonJS 兼容系统)包含的文件可以通过module.exports. module.exportsrequire()语句中返回。

举个例子:

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"

于 2015-01-07T21:38:56.320 回答