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。