6

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

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

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

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

4

2 回答 2

10

“这不是说这个区块之外的任何东西都无法访问这个功能吗?”

是的,它确实。

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

通常是因为它包含仅供内部使用的代码,但在您的示例中,该函数从未被调用。

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

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

于 2012-12-01T01:08:46.313 回答
1

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

于 2012-12-01T01:10:59.700 回答