javascript - 如何将匿名函数中定义的局部变量公开到全局空间?

标签 javascript

我有一个例子,变量是在自动执行的匿名函数中定义的。我想将它们暴露给全局空间,这样我就可以在匿名函数返回后使用 foobar

(function () {
    var foo = 123;
    var bar = function () { /* ... */ };
})();

问题是我不能简单地通过 window.foo = 123SomeExistingGlobalObject.foo = 123 来公开它,因为我不知道会出现什么提前在匿名函数内。函数内部的内容是动态生成的。

我尝试从该函数返回另一个自执行函数,但这也不起作用。这可能吗?

最佳答案

使用 revealing module pattern :

var module = (function () {
  var foo = 123;
  var bar = function () {
    console.log('Hallo');
  };
  return { foo: foo, bar: bar }
})();

console.log(module.foo); // 123
module.bar(); // Hallo

DEMO

关于javascript - 如何将匿名函数中定义的局部变量公开到全局空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26380538/

相关文章:

java - 传递 JSON 对象

javascript - 在 Canvas 内绘制图像

javascript - 在 GraphQL 中返回关系数据时遇到问题

javascript - 在数组内搜索数组

javascript - 服务器端 javascript 引擎的 Ruby 绑定(bind)?

javascript - 类型错误 : Cannot call method 'then' of undefined Angularjs

javascript - 在 Rails 中使用 jQuery 附加表单

javascript - 如何从firestore中的时间戳返回日期部分 react native

javascript - 动态按钮 ng-click 将变量传递给函数

javascript - 使用 Javascript 对文本区域和输入进行计数