Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Melaksanakan Kelas Statik atau Corak Singleton dengan Betul dalam JavaScript?

Bagaimanakah Saya Boleh Melaksanakan Kelas Statik atau Corak Singleton dengan Betul dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-12-19 18:45:141046semak imbas

How Can I Properly Implement a Static Class or Singleton Pattern in JavaScript?

Memahami Ungkapan Fungsi Statik Javascript: Kes GameData

Dalam Javascript, ungkapan fungsi yang menggunakan kata kunci baharu tidak statik dalam erti kata yang sama sebagai rakan sejawatan C# mereka. Daripada mencipta kelas statik yang benar-benar statik, pendekatan ini membocorkan sifat pembina dan menghasilkan objek prototaip yang mungkin tidak dimaksudkan.

Selam Lebih Dalam ke Contoh GameData

Contoh yang disediakan, gameData, menunjukkan penciptaan satu contoh "kelas" menggunakan ungkapan fungsi dengan kata kunci baharu. Walau bagaimanapun, kemasukan sifat pembina membenarkan instantiasi objek tambahan, menjadikan "kelas" tidak statik.

Pendekatan Singleton Alternatif

Untuk mencapai yang benar corak tunggal dalam Javascript, pertimbangkan kaedah berikut:

  • Objek Literal: Cipta literal objek mudah yang tidak mempunyai pembina dan prototaip.
  • Mendedahkan Corak Modul: Guna Ungkapan Fungsi Segera Dipanggil (IIFE) untuk mewujudkan pembolehubah berskop penutupan dan kembalikan objek yang diingini.
  • Pembina ("Kelas"): Tentukan fungsi pembina yang, apabila dipanggil, sentiasa mengembalikan objek tunggal yang sama.

Pelaksanaan Corak Tunggal

The kod di bawah menggambarkan Corak Singleton menggunakan fungsi pembina:

function GameData() {
    if (this.constructor.singleton)
        return this.constructor.singleton;
    else
        this.constructor.singleton = this;

    // Private and public members initialization
}
GameData.prototype.storageAvailable = function () {
    // Availability check logic
};

var gameData = new GameData();
var gameData2 = new GameData();
console.log(gameData === gameData2 === GameData.singleton); // Outputs true

Pendekatan ini memastikan bahawa percubaan instantiasi berikutnya sentiasa mengembalikan tika GameData yang sama, mewujudkan tingkah laku tunggal yang benar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kelas Statik atau Corak Singleton dengan Betul 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