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

Bagaimanakah Saya Boleh Melaksanakan Corak Singleton dalam JavaScript dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 17:17:12591semak imbas

How Can I Implement the Singleton Pattern in JavaScript Efficiently?

Pelaksanaan Corak Singleton yang Bersih dan Mudah dalam JavaScript

Corak singleton memastikan bahawa hanya satu contoh kelas boleh wujud. JavaScript menawarkan beberapa pendekatan untuk melaksanakan corak ini dengan cekap.

Kaedah 1: Literal Objek Mudah

Satu pendekatan mudah ialah mencipta objek literal dan kemudian menetapkannya kepada pembolehubah . Ini membolehkan akses mudah kepada kaedah dan sifat contoh tunggal.

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

Kaedah 2: Singleton berasaskan penutupan

Untuk mencipta ahli persendirian, anda boleh menggunakan corak modul, yang melibatkan penggunaan penutupan.

var myInstance = (function() {
  var privateVar = '';
  function privateMethod () {}
  return {
    publicMethod1: function () {},
    publicMethod2: function () {}
  };
})();

Kaedah 3: Objek ES5 Bekukan

Untuk mengelakkan pengubahsuaian objek tunggal, anda boleh membekukannya menggunakan kaedah Object.freeze.

Object.freeze(myInstance);

Kaedah 4: ES Modules Singleton

Dalam ES6, anda boleh menentukan singleton menggunakan modul dengan peribadi negeri.

// my-singleton.js
const privateState = [];
export default {
  method1() {},
  method2() {}
};
// usage
import myInstance from './my-singleton.js';

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Corak Singleton dalam JavaScript dengan Cekap?. 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