javascript - 以编程方式向根 Node 对象添加函数

标签 javascript node.js

在普通的浏览器js中,我们可以这样做:

window["fname"] = function(){ /* do something */ };

然后我们可以在任何我们想要的地方调用 fname - 它现在是一个全局函数。是否可以在 Node 中做类似的事情,我们将函数添加到某个对象,然后可以在文件的其余部分按原样调用它们:

root["fname"] = function(){ /* do something */ };
fname();

我不是在寻找对所有文件全局起作用的东西,只是在这个文件中保持“全局命名空间污染”的东西,我可以按原样调用所有这些函数,而无需求助于 obj .fname.

最佳答案

编辑(为清楚起见):

据我的测试显示 - 您无法访问模块的本地范围。它是(或类似于)闭包,您不能以编程方式访问它的范围。所以你最好的选择是global(又名root)对象,它保留全局变量,但它对整个应用程序都是一样的(所以每个模块都可以访问它)。

所以,最好每次都走捷径:

var foo = myModule.foo;
var boo = myAnotherModule.boo;

使用“全局”作为命名空间:

global['foo'] = function(){ console.log('foo'); }; // same as global.foo = ...

foo() //prints 'foo' to console

更多内容:

http://www.reddit.com/r/node/comments/jb4dy/adding_to_the_global_namespace_in_nodejs/

关于javascript - 以编程方式向根 Node 对象添加函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308389/

相关文章:

javascript - 无法访问资源请求的回调函数内的变量

javascript - React Native + Icons : Warning: Failed prop type: Invalid props.样式键tintColor提供给ForwardRef(Text)

javascript - Typeahead 不在下拉列表中显示文本

javascript - 使用 KaTeX 在 node.js 模板中渲染数学

node.js - 在 Ubuntu 16.04 和 Plesk Onyx 上安装 node.js npm

node.js - 在 TFS 上发布找不到 Node.js 测试项目的 pubxml 文件

node.js - 如何为基于 Express 构建的 REST API 实现 CAS 身份验证

javascript - 如何使用 foreach 绑定(bind)从选择选项传递参数以触发和过滤数组可观察对象

javascript - 我们如何转换 .proto 文件和 JSON 描述符?

javascript - 没有 jQuery 和 JSPM 的 highcharts