您好我是javascript的新手,我正在尝试维护某些代码,但我似乎无法弄清楚他们在做什么。
他们似乎正在声明一个像这样的函数:
(function(Module) {
Module.register(...) {
....
return ...;
};
Module.register(...) {
....
return ...;
};
}(hb.Core));
如果你想创建一个名为Module.register的函数两次(我认为他们正在尝试这样做),你会不会这样做?
function myFunction(Module) {
Module.register(...) {
...
};
Module.register(...) {
...
};
}
myfunction(Module);
另外,不知道这是否真的相关,但他们正在使用沙箱模型(他们有不同的模块只通过沙箱与应用程序核心通信)。
希望有人可以提供帮助。我对Javascript和前端开发都很陌生,我很困惑。
答案 0 :(得分:2)
重复What is the purpose of a self executing function in javascript?
这是一个自动执行匿名函数调用。您的示例是一个函数声明,您已为该函数指定了一个名称,因此它不再是匿名的。当需要将变量的范围仅限于自执行函数中的任何内容时,可以使用自执行函数。
答案 1 :(得分:0)
如果你的意思是
(function(Module) {}(hb.Core));
它是一个自调用函数,为其hb.Core
参数接收Module
值。
在javascript函数中声明范围,因此这是上述问题的主要原因。
该函数内部的变量不能在其外部访问,这意味着在其范围之外