最もシンプルかつクリーンに実装する方法は何ですか?シングルトンパターンJavaScript では?
ベストアンサー1
最も簡単な方法は、単純なオブジェクトリテラルを宣言することだと思います。
var myInstance = {
method1: function () {
// ...
},
method2: function () {
// ...
}
};
シングルトン インスタンスにプライベート メンバーが必要な場合は、次のようにします。
var myInstance = (function() {
var privateVar = '';
function privateMethod () {
// ...
}
return { // public interface
publicMethod1: function () {
// All private members are accessible here
},
publicMethod2: function () {
}
};
})();
これは、モジュールパターン、そして基本的には、オブジェクト上のプライベートメンバーをカプセル化することを可能にします。閉鎖。
シングルトンオブジェクトの変更を防ぎたい場合は、ES5を使用してそれを凍結することができます。Object.freeze
方法。
これにより、オブジェクトは不変になり、その構造と値の変更が防止されます。
ES6 を使用している場合は、 ES モジュールを使用してシングルトンを簡単に表現でき、モジュール スコープで変数を宣言することでプライベート状態を保持することもできます。
// my-singleton.js
const somePrivateState = []
function privateFn () {
// ...
}
export default {
method1() {
// ...
},
method2() {
// ...
}
}
次に、シングルトン オブジェクトをインポートして使用します。
import myInstance from './my-singleton.js'
// ...