Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Melaksanakan Corak Singleton dalam JavaScript?

Bagaimanakah Saya Boleh Melaksanakan Corak Singleton dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 00:47:15197semak imbas

How Can I Implement the Singleton Pattern in JavaScript?

Melaksanakan Corak Singleton dalam JavaScript: Panduan Komprehensif

Corak singleton memastikan bahawa hanya satu contoh kelas atau objek wujud dalam sesuatu permohonan. Dalam JavaScript, beberapa pendekatan boleh digunakan untuk melaksanakan corak ini.

Pendekatan Literal Objek

Pertimbangkan menggunakan literal objek mudah untuk pelaksanaan yang mudah:

var myInstance = {
  method1: function () {
    // ...
  },
  method2: function () {
    // ...
  }
};

Corak Modul (untuk Peribadi Ahli)

Merangkum ahli persendirian menggunakan corak modul:

var myInstance = (function() {
  var privateVar = '';

  function privateMethod () {
    // ...
  }

  return { // public interface
    publicMethod1: function () {
      // All private members are accessible here
    },
    publicMethod2: function () {
    }
  };
})();

Mencegah Pengubahsuaian dengan Object.freeze

Memelihara integriti objek tunggal dengan membekukan ia:

Object.freeze(myInstance);

ES6 dan Negeri Persendirian dengan Modul ES

Manfaatkan modul ES6 dan keadaan persendirian dengan berkesan:

// my-singleton.js
const somePrivateState = []

function privateFn () {
  // ...
}

export default {
  method1() {
    // ...
  },
  method2() {
    // ...
  }
}

Menggunakan Objek Singleton

Import dan gunakan objek tunggal dengan mudah:

import myInstance from './my-singleton.js'
// ...

Pelbagai pendekatan wujud untuk melaksanakan corak tunggal dalam JavaScript, daripada literal objek mudah kepada teknik lanjutan dengan penutupan dan pengurusan keadaan persendirian. Pilih kaedah yang paling sesuai dengan keperluan khusus anda dan keperluan projek.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Corak Singleton dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn