问题标签 [global-namespace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1161 浏览

ruby-on-rails - Ruby (/rails?) 顶级命名空间

我处于以下情况:

我正在Rails中建立一个站点。我有两个名为 User 的类。一个是 ActiveRecord,另一个是我想用来为我的数据库播种的自定义类。问题:

我可以在名为 User 的自定义类中引用名为 User 的 ActiveRecord 类吗?

0 投票
1 回答
3150 浏览

php - PHP 全局命名空间别名

这是场景。

我在我的项目中实现命名空间。

我有自己的自定义桥接库,它调用 Zend 等其他库来完成繁重的工作。

我在自定义桥接库中使用完全限定的命名空间没有问题,但希望在我的控制器、模型和视图中保持代码尽可能简洁。

这是我想使用的一些别名的示例:

示例用法:

或者

是否有可能以任何方式创建一个可以全局访问且不会在每个文件末尾丢弃的别名或常量?

某种可以使这些别名保持不变的引导文件。

0 投票
0 回答
158 浏览

ruby-on-rails - 解决 Ruby 中的命名空间问题?

我的 Rails 应用程序中有一个模块Constants,它本身定义了一些常量。我最近在我的 rails 应用程序中包含了 mongo gem,现在对这些常量的所有引用都会引发错误。

未初始化的常量 Mongo::Constants::MY_FAVORITE_CONSTANT

代码大致如下:

现在我尝试将上面代码中的行更改为,::Constants::MY_FAVORITE_CONSTANT但这会导致相同的错误。

该模块Constants位于app/models/constants.rb.

这里的任何帮助都会非常有用。谢谢。

0 投票
3 回答
6778 浏览

javascript - 如何从 Meteor 包导出到我的应用程序的命名空间?

我知道如何编写 Meteor 包,但我似乎无法弄清楚如何将所有导出都放在我的应用程序的命名空间中,如本演示文稿中所述。

这个特定的包是特定于我正在构建的应用程序的,它只导出一个可以被视为应用程序单例上的装饰器的方法。我试过api.export('MyApp.myMethod')了,但这给出了一个错误native: Bad exported symbol: MyApp.myMethod

如果我只是api.export('myMethod'),那么在我必须调用的应用程序代码中myMethod(),这不是命名空间。

Meteor 是否有类似于 Node 的机制var http = require('http');?或者如何打包导出符号到给定的命名空间?

0 投票
0 回答
62 浏览

javascript - 是否有任何衡量 JavaScript 中全局命名空间污染导致的性能损失的方法?

我在编写 JavaScript 时学到的第一件事就是在全局命名空间上设置变量window并污染全局命名空间是不好的做法。

环顾四周,有很多文章,因为有一些关于为什么它被认为是不好的做法以及如何测量存储的对象数量的问题(这里)。

但是,即使我可以获得存储在其中的对象的数量,window我也从未读过任何关于 cluttering 对性能造成的实际影响的信息window

问题
是否有任何示例显示名称空间污染如何降低性能?

0 投票
1 回答
790 浏览

c++ - ADL 是否适用于全局命名空间?

启用类型输出示例std解释了如何使用ADL来“注入”某个函数/运算符,具体取决于应用 fn/op 的类型。

我想知道 ADL 是否完全适用于全局命名空间,也就是说,在全局命名空间范围内using声明(或通过 提供)的类型是否使 ADL 在全局命名空间中寻找匹配的函数?

具体来说,这些是等价的吗?日常活动?:


写。不需要 ADL 的全局命名空间范围:(在现已删除的答案后更新)

委员会著名的 Daniel Krügler 描述了一个 ADL问题:

这个不合格的调用具有发生不合格名称查找的效果,因此,编译器会搜索名称operator<<。从在 当前命名空间和包含该命名空间的所有命名空间(包括全局命名空间,顺便operator<<一句)和 - ...

强调。矿。注意外部命名空间是如何被描述为只被认为是“......来自词汇位置......”。他继续:

...并且 - 作为第二条路线 - 它执行此查找的第二阶段,编译器在此调用中出现的参数类型的所谓关联命名空间中搜索。

在给出的示例中,搜索的第一阶段失败,因为在#include <iterator>存在的点上,在任何命名空间中都没有operator<<这些参数类型的对应关系。请注意,您的声明operator<<是在某些库头文件中某处发生 调用的点之后提供的。搜索的第二阶段还将考虑 实际函数调用之后的位置,但仅限于关联的命名空间内。operator<<

大胆的强调。矿。所以在我看来,ADL 适用于全局命名空间是相关的。当然,我很容易误解了一些东西。


注意:这可能是标准没有明确提及它的一种情况,因为全局 NS 就像任何其他命名空间一样——同样可能不是,我对标准的了解非常有限。

0 投票
1 回答
105 浏览

c++ - 合格的 ::toplevel_namespace 和不合格的 toplevel_namespace 之间有什么区别吗?

::any_name通常,和之间的区别any_name 应该很清楚。如果以::名称开头,则始终且仅在全局命名空间中查找。

然而,我想知道是否存在技术(*)差异,给定一个我已经知道是顶级的命名空间(即直接在全局命名空间之下)并且我知道没有第二个(嵌套)命名空间(或任何名称)同名。

例如, using ::std::stringvs.之间有什么区别std::string吗?


(*) 除了可读性、风格和维护问题。

0 投票
1 回答
68 浏览

javascript - 如何在 Javascript 中跟踪/保留全局命名空间

我想知道跟踪某些外部 javascript 对全局命名空间所做的更改的最佳方法是什么。例如,假设我有一个网站,我想知道哪些对象正在被访问者机器上运行的某些第三方软件添加到全局命名空间中。还有一种方法可以从这些更改中保留全局名称空间吗?

0 投票
2 回答
1034 浏览

meteor - 如何在 Meteor 中为全局变量创建自己的命名空间?

我在理解一个我认为是全局的变量的范围时遇到了困难。
与其把它全部弄清楚,我想也许最好声明我自己的全局命名空间并将我的东西放在那里。
这是这样做的方法吗?

客户端/main.js

客户端/some_other_file.js

0 投票
1 回答
437 浏览

javascript - 如何使对象可作为实例和函数调用

我正在努力在包装器内构建一组原型辅助方法。但是为了便于使用,我希望能够在同一个调用下将该对象作为新实例和单个全局实例调用。

例如,使用 jQuery,您可以同时调用“$”和“$()”,它们的使用方式不同http://learn.jquery.com/using-jquery-core/dollar-object-vs-function/

因此,鉴于下面的简单示例,我该如何做类似的事情?

http://jsfiddle.net/2ywsunb4/