Rumah >hujung hadapan web >tutorial js >Pelajari corak reka bentuk JavaScript - kemahiran singleton pattern_javascript
1. Definisi
Jaminan bahawa kelas hanya mempunyai satu tika dan menyediakan pusat akses global kepadanya.
Apabila anda mengklik butang log masuk, tetingkap terapung log masuk muncul pada halaman Tetingkap terapung log masuk ini tidak kira berapa kali anda mengklik butang log masuk, tetingkap terapung ini hanya akan dibuat sekali untuk digunakan sebagai corak tunggal untuk mencipta.
2. Prinsip Pelaksanaan
Tidak rumit untuk melaksanakan satu tunggal Gunakan pembolehubah untuk menandakan sama ada objek telah dibuat untuk kelas tertentu Jika ya, objek yang dibuat sebelum ini akan dikembalikan secara langsung apabila anda mendapat contoh kelas.
3. Singleton Palsu
Pembolehubah global bukan dalam mod tunggal, tetapi dalam pembangunan JavaScript, kami sering menggunakan pembolehubah global sebagai tunggal.
var a = {};
Kurangkan pencemaran penamaan yang disebabkan oleh pembolehubah global
(1) Gunakan ruang nama
var namespace1 = { a: function(){}, b: 2 }
(2) Gunakan penutupan untuk merangkum pembolehubah persendirian
var user = (function() { var _name = 'lee', _age = '25'; return { getUserInfo: function() { return _name + ":" + _age; } }; })();
4. Lazy singleton: buat contoh objek hanya apabila diperlukan
var getSingle = function(fn) { var result; return function() { return result || (result = fn.apply(this, arguments)); }; }; // 测试 function testSingle(){} getSingle(testSingle)() === getSingle(testSingle)(); // true
5
(1) Malas memuatkan
var lazyload = function() { console.log(1); lazyload = function() { console.log(2); } return lazyload(); } lazyload();
(2) Pramuat
var preload = (function() { console.log(1); preload = function() { console.log(2); }; return preload; })(); preload();Saya harap artikel ini akan membantu semua orang yang mempelajari pengaturcaraan JavaScript.