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
Lepaskan: 2024-12-19 18:45:14
asal
986 orang telah melayarinya

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan