JavaScript でシングルトンを実装する最もシンプルでクリーンな方法 質問する

JavaScript でシングルトンを実装する最もシンプルでクリーンな方法 質問する

最もシンプルかつクリーンに実装する方法は何ですか?シングルトンパターン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'
// ...

おすすめ記事