摘要:所以使用單例會更好的控制全局變量。懶加載單例模式多數都是在加載腳本的時候被創(chuàng)建出來。不過對于一些使用方式單例適合在用到的時候被加載,所以需要一個可以懶加載的單例。
單例
單例是一個全局變量,使用單例可以更好的控制全局變量,還可以利用分支技術來封裝瀏覽器之間的差異。網頁中使用全局變量由于可以被重寫風險很大。所以使用單例會更好的控制全局變量。
懶加載單例模式多數都是在加載腳本的時候被創(chuàng)建出來。不過對于一些使用方式單例適合在用到的時候被加載,所以需要一個可以懶加載的單例。
分支是一種區(qū)分運行環(huán)境差異的技術,更加有效的針對加載的環(huán)境來定制代碼,達到更好的靈活性。
代碼var os = require("os"); Singleton = (function () { var uniqueInstance; // 單例實體 constructor = function () { // 單例初始化 return function Singleton () { var count = 10; function initCount(){ count = 10; } this.getCount = function () { return count; } this.setCount = function (value) { count = value; }; this.init=function(){ initCount(); } }; }(); return { getInstance: function () { if (!uniqueInstance) { // 判斷是否初始化過 uniqueInstance = new constructor(); } return (os.type()==="Windows_NT")?uniqueInstance:undefined;//單例分支使單例有更高的兼容性 } } })(); var S=Singleton .getInstance();//懶加載,在這里開始加載和創(chuàng)建實例。 console.log(S.count); console.log(S.getCount()); S.setCount(550); console.log(S.getCount()); //S.initCount(); S.init(); console.log(S.getCount());總結
單例主要在于代碼的整潔性,是全局變量變得可控,使用懶加載可以減少不必要的內存消耗。分支提高不用環(huán)境的兼容性,只需判斷一次環(huán)境而不用在每次使用都判斷環(huán)境。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87758.html
摘要:一什么是單例設計模式單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。 一、什么是單例設計模式 單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。 二、單例模式的技巧 利用$_instance私有變量來保存類的唯一實例化對象; 設計一個getInstance對外公開的函數,...
摘要:大潮來襲前端開發(fā)能做些什么去年谷歌和火狐針對提出了的標準,顧名思義,即的體驗方式,我們可以戴著頭顯享受沉浸式的網頁,新的標準讓我們可以使用語言來開發(fā)。 VR 大潮來襲 --- 前端開發(fā)能做些什么 去年谷歌和火狐針對 WebVR 提出了 WebVR API 的標準,顧名思義,WebVR 即 web + VR 的體驗方式,我們可以戴著頭顯享受沉浸式的網頁,新的 API 標準讓我們可以使用 ...
摘要:既能保證延遲加載,又能保證線程安全枚舉上面的四種方案都有兩個弊端需要額外的工作進行序列化,否則每次反序列化的結果都是一個新的實例可通過反射機制強行調用私有構造器實現(xiàn)創(chuàng)建多個對象而這種方案完美的解決了上述兩種問題 一.什么是單例模式? 單例是指在程序中某個類只能有一個實例,一些管理器和控制器常被設計成單例模式(如Spring容器的bean實例默認都是單例模式存在的) 二.單例有什么好處?...
閱讀 1868·2021-11-22 09:34
閱讀 1141·2021-10-09 09:44
閱讀 3001·2021-09-29 09:35
閱讀 3617·2021-09-14 18:01
閱讀 1465·2021-08-16 10:49
閱讀 1084·2019-08-29 14:11
閱讀 849·2019-08-29 12:47
閱讀 3068·2019-08-26 13:47