javascript - 如果代码放置在匿名函数中,为什么我可以从控制台访问它?

标签 javascript meteor

我注意到 Meteor 的生产就绪代码被连接、缩小,然后包装在匿名函数中。

理论上,这应该会使 Meteor 对象及其方法无法通过 DOM/窗口对象/控制台访问。

为什么我仍然可以通过控制台访问放置在匿名函数中的对象?

最佳答案

Javascript 是函数作用域的,这意味着内部函数可以访问(并且可编辑!)外部函数变量。这一直到全局(窗口)变量。例如:

(function() {
  window.t ='foo';
})();

如果您在控制台中运行该代码,然后查看 t 是什么,您将看到您在函数内创建/更改了它。 Meteor 全局范围化了一些变量(Meteorcheck 等),以便您可以访问它们,以及创建包时您自己设定范围的任何变量。这是因为每个 .js 文件也是一个匿名函数,如果您没有导出某些变量,则必须将所有内容写入 1 个大文件中。通过仅导出您需要的变量,您的项目保持模块化。希望这有帮助!

关于javascript - 如果代码放置在匿名函数中,为什么我可以从控制台访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564759/

相关文章:

node.js - 使用 Twitter 中的 Meteor 应用程序发送推文

javascript - meteor.js - 将单击的元素的 id 传递到集合

javascript - 获取多维数组中具有最大值的行

javascript - 当 Babel 和 Traceur 转译 ES6 解构时,额外变量的目的是什么?

linux - meteor 部署 : mupx setup and mupx deploy errors

mongodb - Meteor:定时做一次数据库操作

javascript - 如何减少谷歌图表功能代码?

javascript - Mongodb,通过控制减少列表

javascript - 删除预定义字符串后的字符串

reactjs - react - componentWillReceiveProps 未运行