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:
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!