【发布时间】:2010-12-28 09:23:05
【问题描述】:
我对 javascript 中的函数命名空间有点困惑。我可以使用相同名称的功能吗?
谢谢
【问题讨论】:
-
dustindiaz.com/namespace-your-javascript 有一些很好的例子。
标签: javascript
我对 javascript 中的函数命名空间有点困惑。我可以使用相同名称的功能吗?
谢谢
【问题讨论】:
标签: javascript
如果您指的是 ECMAScript 6/JavaScript 2 命名空间,目前没有任何 JavaScript 实现支持命名空间。
如果您指的是今天如何完成命名空间,它只是使用一个对象并将您想要定义的每个方法都放在它上面。
var myNamespace = {};
myNamespace.foo = function () { /*...*/ };
myNamespace.bar = function () { /*...*/ };
【讨论】:
在 Javascript 中没有像 C++ 中那样的命名空间的官方概念。但是,您可以将函数包装在 Javascript 对象中以模拟命名空间。例如,如果您想在名为 MyNamespace 的“命名空间”中编写一个函数,您可以执行以下操作:
var MyNamespace = {};
MyNamespace.myFunction = function(arg1, arg2) {
// do things here
};
MyNamespace.myOtherFunction = function() {
// do other things here
};
然后,要调用这些函数,您可以编写 MyNamespace.myFunction(somearg, someotherarg); 和 MyNamespace.myOtherFunction();。
我还应该提到,在 Javascript 中有许多不同的方法来进行命名空间和类类似的事情。我的方法只是其中之一。
如需更多讨论,您可能还想查看this 问题。
【讨论】:
myNamespace 可能会更好。
MyNamespace 充当一个类。