在这样的JavaScript中定义单例是不是很糟糕的编码实践?

时间:2016-02-21 21:57:25

标签: javascript singleton

此代码有效,但我不确定在函数中运行函数然后覆盖该函数是否被视为不良做法:

(function () {

        var Singleton = function () {
            var singleton = {};
            //...
            // Overide the function:
            Singleton = singleton;
        };

}());`

1 个答案:

答案 0 :(得分:0)

  

此代码有效

我对此表示怀疑。

  

但是我不确定在运行函数然后在函数中覆盖该函数是否被认为是不好的做法

在必要时它是可以接受的,虽然有点令人困惑,你永远不应该依赖旧功能不再被调用的事实。

什么是不可接受,绝对不好的做法是用对象覆盖函数,就像你一样。它必须首次调用,但不能用于以下访问。您根本不需要Singleton函数,只需使用对象文字:

(function () {
    var singleton = {
        …
    };

    … // use `singleton` here
}());