シンプルなシングルトンの実装を考えてみましょう:
var singleton = function (Constructor) {
var singleton;
return function () {
if (!singleton) {
singleton = new Constructor();
}
return singleton;
};
};
シングルトン変数の宣言を引数に移動できます。
var singleton = function (Constructor, singleton) {
return function () {
if (!singleton) {
singleton = new Constructor();
}
return singleton;
};
};
だから私は単に副作用について興味があります。
もう 1 つの例:
var counter = (function (i) {
return function () {
i = (i || 0) + 1;
return i;
};
}());