我想在 MyNamespace 中命名一些函数。我想首先创建一个对象 MyNamespace
,然后在其中定义函数。
如何在仍使用 function myThing() {...}
形式的情况下将函数分配给命名空间?这个语法会是什么样子?
不起作用的对象语法:
var MyNamespace = {
function helloWorld() {
console.log('hi!');
}
function goodbyeWorld() {
console.log('I <3 Titanic');
}
}
MyNamespace.helloWorld();
可以使用的对象语法,但不使用 function() {} 语法
var MyNamespace = {
helloWorld: function() {
console.log('hi!');
},
goodbyeWorld: function() {
console.log('I <3 Titanic');
}
}
MyNamespace.helloWorld();
也许我可以做 function MyNamespace.helloWorld() {...}
但这似乎不起作用。
最佳答案
你的第二个例子是最常用的方法。按此顺序使用“函数名称()”没有技术优势。还有另一种选择:
function wrapper() {
function helloWorld() {
}
function privateFunction() { }
return {
helloWorld: helloWorld
};
}
在这种情况下,您还可以声明命名空间私有(private)函数,就像那里的函数一样。 helloWorld 可以调用 privateFunction,但外部无法直接调用它。 (请注意,所有公共(public)函数都需要位于该返回的对象中)
自动实例化:
// in the ... insert my above example
window.mynamespace = (...)();
关于javascript - 在 javascript 中命名函数,同时使用 function myFunction() 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24685639/