學習JavaScript設計模式之單例模式
一、定義
保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
當單擊登陸按鈕,頁面中出現(xiàn)一個登陸浮窗,這個登陸浮窗是唯一的,無論單擊多少次登陸按鈕,這個浮窗都只會被創(chuàng)建一次,那么這個登陸浮窗就適合用單例模式來創(chuàng)建。
二、實現(xiàn)原理
要實現(xiàn)單例并不復雜,使用一個變量來標志當前是否已經(jīng)為某個類創(chuàng)建過對象,如果是,則在下一次獲取該類的實例時,直接返回之前創(chuàng)建的對象。
三、假單例
全局變量不是單例模式,但在JavaScript開發(fā)中,我們經(jīng)常會把全局變量當成單例來使用。
var a = {};
降低全局變量帶來的命名污染
(1)使用命名空間
var namespace1 = { a: function(){}, b: 2 }
(2)使用閉包封裝私有變量
var user = (function() { var _name = 'lee', _age = '25'; return { getUserInfo: function() { return _name + ":" + _age; } }; })();
四、惰性單例:在需要的時候才能創(chuàng)建對象實例
var getSingle = function(fn) { var result; return function() { return result || (result = fn.apply(this, arguments)); }; }; // 測試 function testSingle(){} getSingle(testSingle)() === getSingle(testSingle)(); // true
五、補充:
(1)懶加載
var lazyload = function() { console.log(1); lazyload = function() { console.log(2); } return lazyload(); } lazyload();
(2)預加載
var preload = (function() { console.log(1); preload = function() { console.log(2); }; return preload; })(); preload();
希望本文所述對大家學習javascript程序設計有所幫助。
- JavaScript設計模式---單例模式詳解【四種基本形式】
- JS 設計模式之:單例模式定義與實現(xiàn)方法淺析
- javascript設計模式 – 單例模式原理與應用實例分析
- 《javascript設計模式》學習筆記三:Javascript面向對象程序設計單例模式原理與實現(xiàn)方法分析
- js設計模式之單例模式原理與用法詳解
- JavaScript設計模式之單例模式原理與用法實例分析
- JavaScript設計模式之單例模式簡單實例教程
- JS基于設計模式中的單例模式(Singleton)實現(xiàn)封裝對數(shù)據(jù)增刪改查功能
- JS設計模式之單例模式(一)
- NodeJS設計模式總結【單例模式,適配器模式,裝飾模式,觀察者模式】
- JavaScript設計模式之單例模式實例
- JavaScript中的設計模式 單例模式
相關文章
JavaScript實現(xiàn)兩個數(shù)組的交集
這篇文章主要介紹了JavaScript實現(xiàn)兩個數(shù)組的交集,給定兩個數(shù)組???nums1???和??nums2??返回它們的交集,輸出結果中的每個元素一定是唯一的,下文詳細介紹,需要的小伙伴可以參考一下2022-03-03js獲取元素到文檔區(qū)域document的(橫向、縱向)坐標的兩種方法
獲取頁面中元素到文檔區(qū)域document的橫向、縱向坐標,在js控制元素運動的過程中,對于頁面元素坐標位置的獲取是經(jīng)常用到的,這里主要總結下兩種方法2013-05-05JavaScript基于面向對象實現(xiàn)的無縫滾動輪播示例
這篇文章主要介紹了JavaScript基于面向對象實現(xiàn)的無縫滾動輪播,結合實例形式分析了JavaScript面向對象實現(xiàn)的無縫滾動輪播相關對象定義、初始化及功能實現(xiàn)技巧,需要的朋友可以參考下2020-01-01