我对javascript中函数的命名空间感到困惑。我可以使用相同名称的功能吗?
由于
答案 0 :(得分:18)
在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问题。
答案 1 :(得分:2)
目前,如果您指的是ECMAScript 6 / JavaScript 2名称空间,则没有JavaScript实现支持名称空间。
如果你指的是今天如何完成命名空间,那就是使用一个对象并将你想要定义的每个方法都放在它上面。
var myNamespace = {};
myNamespace.foo = function () { /*...*/ };
myNamespace.bar = function () { /*...*/ };