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
Lepaskan: 2016-05-16 15:19:16
asal
1138 orang telah melayarinya

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 = {};

Salin selepas log masuk

Kurangkan pencemaran penamaan yang disebabkan oleh pembolehubah global
(1) Gunakan ruang nama

var namespace1 = {
  a: function(){},
  b: 2
}
Salin selepas log masuk

(2) Gunakan penutupan untuk merangkum pembolehubah persendirian

var user = (function() {
  var _name = 'lee',
    _age = '25';
  return {
    getUserInfo: function() {
      return _name + ":" + _age;
    }
  };
})();
Salin selepas log masuk

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

Salin selepas log masuk

5

(1) Malas memuatkan

var lazyload = function() {
  console.log(1);
  lazyload = function() {
    console.log(2);
  }
  return lazyload();
}

lazyload();
Salin selepas log masuk

(2) Pramuat

var preload = (function() {
  console.log(1);
  preload = function() {
    console.log(2);
  };
  return preload;
})();

preload();
Salin selepas log masuk
Saya harap artikel ini akan membantu semua orang yang mempelajari pengaturcaraan JavaScript.
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan