0

嗨,我是 javascript 新手,我正在尝试维护某人的代码,但我似乎无法弄清楚他们在做什么。

他们似乎在声明这样的函数:

(function(Module) {
    Module.register(...) {
       ....
       return ...;
    };
    Module.register(...) {
       ....
       return ...;
    };
 }(hb.Core));

如果您想创建一个调用 Module.register 两次的函数(我认为他们正在尝试这样做),您不会执行以下操作吗?

function myFunction(Module) {
     Module.register(...) {
        ...
     };
     Module.register(...) {
        ...
     };
}
myfunction(Module);

另外,不知道这是否真的相关,但他们正在使用沙盒模型(他们有不同的模块仅通过沙盒与应用程序核心进行通信)。

希望有人能帮忙。总的来说,我对 Javascript 和前端开发真的很陌生,我很困惑。

4

2 回答 2

2

重复javascript中自执行函数的目的是什么?

这是一个自我执行的匿名函数调用。您的示例是一个函数声明,您在其中为函数分配了一个名称,因此它不再是匿名的。当需要将变量范围限定为仅可用于自执行函数内部的任何内容时,将使用自执行函数。

于 2013-03-19T17:58:53.143 回答
0

如果你的意思是那个功能

(function(Module) {}(hb.Core));

它是一个自调用函数,接收hb.CoreModule参数的值。在 javascript 函数中声明范围,因此这是上述原因的主要原因。

该函数内部的变量在它之外是不可访问的,这意味着在它的范围之外

于 2013-03-19T18:00:43.183 回答