Rumah >hujung hadapan web >tutorial js >Pelajari corak reka bentuk JavaScript - kemahiran singleton pattern_javascript

Pelajari corak reka bentuk JavaScript - kemahiran singleton pattern_javascript

WBOY
WBOYasal
2016-05-16 15:19:161101semak imbas

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.
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