在匿名函数中声明函数

时间:2012-12-01 01:06:47

标签: javascript function anonymous

我正在查看似乎声明需要调用以运行的函数的代码。此函数在匿名函数中声明。这是不是意味着该块之外的任何东西都无法访问该函数?

(function () {
    var _d = vjo.dsf.EventDispatcher;
    var _r = vjo.Registry;

    function $1(p0) {
        return function (event) {
            return this.onSubmit(p0, event);
        };
    };
})();

为什么会有人这样做? 我不确定此代码中$的目的/相关性。

2 个答案:

答案 0 :(得分:9)

  

“这是不是意味着该块以外的任何东西都无法访问该功能?”

是的。

  

“为什么会有人这样做?”

通常因为它包含仅供内部使用的代码,但在您的示例中,永远不会调用该函数。

  

“我不符合此代码中”$“的目的/相关性。”

没有相关性。只是另一个有效的变量字符。

答案 1 :(得分:1)

您发布的示例显示了一种常见的写作模式" modules"在javascript中,虽然有一个错误。永远不会调用$ 1并且是私有的,这意味着它可能也不存在。但是,在一个有效的例子中,会有额外的代码可以调用$ 1和可能的其他函数。然后,当包含此代码时,整个事情将进行评估,但全局命名空间不会受到声明的污染。