欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript實現(xiàn)單例模式

 更新時間:2016年01月24日 08:53:12   作者:Darren Ji  
單例模式也稱作為單子模式,更多的也叫做單體模式。為軟件設(shè)計中較為簡單但是最為常用的一種設(shè)計模式。這篇文章主要介紹了Javascript實現(xiàn)單例模式的相關(guān)資料,需要的朋友可以參考下

單例模式也稱作為單子模式,更多的也叫做單體模式。為軟件設(shè)計中較為簡單但是最為常用的一種設(shè)計模式。

單例模式的介紹:

    在應(yīng)用單例模式時,生成單例的類必須保證只有一個實例的存在,很多時候整個系統(tǒng)只需要擁有一個全局對象,才有利于協(xié)調(diào)系統(tǒng)整體的行為。比如在整個系統(tǒng)的配置文件中,配置數(shù)據(jù)有一個單例對象進(jìn)行統(tǒng)一讀取和修改,其他對象需要配置數(shù)據(jù)的時候也統(tǒng)一通過該單例對象來獲取配置數(shù)據(jù),這樣就可以簡化復(fù)雜環(huán)境下的配置管理。

    單例模式的思路是:一個類能返回一個對象的引用(并且永遠(yuǎn)是同一個)和一個獲得該實例的方法(靜態(tài)方法,通常使用 getInstance 名稱)。那么當(dāng)我們調(diào)用這個方法時,如果類持有的引用不為空就返回該引用,否者就創(chuàng)建該類的實例,并且將實例引用賦值給該類保持的那個引用再返回。同時將該類的構(gòu)造函數(shù)定義為私有方法,避免其他函數(shù)使用該構(gòu)造函數(shù)來實例化對象,只通過該類的靜態(tài)方法來得到該類的唯一實例。

一般情況下,Javascript每次new一個對象就產(chǎn)生一個實例,實例指向不同的地址。就像如下:

(function(){
function Person(name){
this.name = name;
}
Person.prototype.work = function(){
console.log(this.name + " is working");
}
var p1 = new Person("Darren");
p1.work();
var p2 = new Person("Jack");
p2.work();
}());

以上,每次new出一個Person對象都是不同的。

如何在Javascript中實現(xiàn)單例模式呢?

--在生成某各對象時先判斷是否存在。存在就不生成對象,不存在就生成對象。

(function(){
var PersonSingleton = (function(){
var instance;
function init(){
return {
name: 'Anonymous',
work: function(){
console.log(this.name + ' working');
}
};
}
return {
getInstance: function(){
if(!instantiated){
instantiated = init();
}
return instantiated;
}
}
})();
var p1 = PersonSingleton.getInstance();
p1.work();
var p2 = PersonSingleton.getInstance();
p2.work();
}());

以上,通過PsonSIngleton對象的getInstance方法得到的實例每次都是一樣的。

關(guān)于javascript單例模式的相關(guān)知識就給大介紹到這里,希望對大家有所幫助。

相關(guān)文章

  • 詳解JavaScript的垃圾回收機(jī)制

    詳解JavaScript的垃圾回收機(jī)制

    這篇文章主要為大家介紹了JavaScript的垃圾回收機(jī)制,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • js實現(xiàn)雙擊圖片放大單擊縮小的方法

    js實現(xiàn)雙擊圖片放大單擊縮小的方法

    這篇文章主要介紹了js實現(xiàn)雙擊圖片放大單擊縮小的方法,涉及js操作圖片及onclick與ondblclick事件的使用技巧,需要的朋友可以參考下
    2015-02-02
  • 原生JS實現(xiàn)數(shù)碼表特效

    原生JS實現(xiàn)數(shù)碼表特效

    這篇文章主要為大家詳細(xì)介紹了原生JS實現(xiàn)數(shù)碼表特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 利用js+css+html實現(xiàn)固定table的列頭不動

    利用js+css+html實現(xiàn)固定table的列頭不動

    本文分享了利用js+css+html實現(xiàn)固定table的列頭不動的實例代碼。小編認(rèn)為具有很好的參考價值,感興趣的朋友可以看下
    2016-12-12
  • Html和JS字符串中間加空格的簡單實例

    Html和JS字符串中間加空格的簡單實例

    最近遇到了個需求,需要在字符串的中間加上一兩個字符串,所以下面這篇文章主要給大家介紹了關(guān)于Html和JS字符串中間加空格的相關(guān)資料,文中介紹的挺詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Javascript HTML5 Canvas實現(xiàn)的一個畫板

    Javascript HTML5 Canvas實現(xiàn)的一個畫板

    這篇文章主要為大家詳細(xì)介紹了Javascript HTML5 Canvas實現(xiàn)的一個畫板的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • js判斷上傳文件后綴名是否合法

    js判斷上傳文件后綴名是否合法

    這篇文章主要介紹了js判斷上傳文件后綴名是否合法的具體方法,以一個完整實例分析了javascript判斷上傳文件后綴名是否合法的方法,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Javascript生成器(Generator)的介紹與使用

    Javascript生成器(Generator)的介紹與使用

    這篇文章主要給大家介紹了關(guān)于Javascript生成器(Generator)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JavaScript三種方法解決約瑟夫環(huán)問題的方法

    JavaScript三種方法解決約瑟夫環(huán)問題的方法

    約瑟夫環(huán)問題又稱約瑟夫問題或丟手絹問題,是一道經(jīng)典的算法問題,本篇將以循環(huán)鏈表、有序數(shù)組、數(shù)學(xué)遞歸三種方式來解決約瑟夫環(huán)問題。感興趣的可以了解一下
    2021-09-09
  • JS實現(xiàn)按鈕添加背景音樂示例代碼

    JS實現(xiàn)按鈕添加背景音樂示例代碼

    這篇文章主要介紹了JS實現(xiàn)按鈕添加背景音樂示例代碼,需要的朋友可以參考下
    2017-10-10

最新評論