using のセマンティクスは using のセマンティクスとstore
は少し異なりthis
ます。つまりstore.add
、通常の関数として扱う場合 (たとえば、別の関数に引数として渡す場合)、 usingstore
は関数が引き続き を参照することを意味しますがstore
、 usingthis
は代わりに、グローバル オブジェクトを参照します。
もちろん、トレードオフは、このメソッドが、その変数によって最初に識別されたオブジェクトではなく、変数によって現在識別されてadd
いるオブジェクトを常に参照することです。このメソッドが実際には常に同じオブジェクトを参照すると仮定すると、両方のアプローチの利点を得る方法は、すぐに呼び出される関数式を使用することです。store
var store = (function () {
var store = {
... // exactly as defined in the code you posted, but now 'store'
// refers to the *local* variable 'store', which can never change
};
return store;
})();
store
とはいえ、このコードの作成者が特定のユースケースを念頭に置いていなくても、私は驚くことではありませんstore
。