繁体   English   中英

在匿名函数中声明函数

[英]Declaring functions inside anonymous function

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

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

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

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

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

是的,它确实。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM