国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

JavaScript設(shè)計(jì)模式之單例模式簡(jiǎn)單實(shí)例教程

2019-11-19 13:34:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了JavaScript設(shè)計(jì)模式之單例模式。分享給大家供大家參考,具體如下:

一、單例模式概念

單例就是保證一個(gè)類只有一個(gè)實(shí)例,實(shí)現(xiàn)方法一般是先判斷實(shí)例存在與否,如果存在直接返回,如果不存在就創(chuàng)建了再返回,這就確保了一個(gè)類只有一個(gè)實(shí)例對(duì)象。在JavaScript里,單例作為一個(gè)命名空間提供者,從全局命名空間里提供一個(gè)唯一的訪問(wèn)點(diǎn)來(lái)訪問(wèn)該對(duì)象。

二、單例模式的作用和注意事項(xiàng)

模式作用:

1、模塊間通信

2、系統(tǒng)中某個(gè)類的對(duì)象只能存在一個(gè)

3、保護(hù)自己的屬性和方法

注意事項(xiàng):

1、注意this的使用

2、閉包容易造成內(nèi)存泄露,不需要的要趕快干掉

3、注意new的成本。(繼承)

三、單例模式代碼和實(shí)戰(zhàn)總結(jié)

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title>單例模式</title></head><body><!--<script>  var Singleton = (function(){    var instantiated;    function init(){      /*這里定義單例代碼*/      return{        publicMethod:function(){          console.log("hello world");        },        publicProperty:"test"      };    }    return{      getInstance:function(){        if(!instantiated){          instantiated = init();        }        return instantiated;      }    }  })();  Singleton.getInstance().publicMethod();</script>--><script>   /*1.獨(dú)立的對(duì)象 建2個(gè)一個(gè)xiaowang一個(gè)xiaoli   2.讓xiaoli跟xiaowang通過(guò)門鈴進(jìn)行通信   3.先看一下xiaowang家有沒有門 如果油門直接通過(guò)門鈴?fù)ㄓ峝idi如果沒有門先建門   4.兩個(gè)單例之間看是通訊*/  var xiaowang = (function(argument){    var men;    var xiaowangjia = function(msg){      this.menling = msg;    }    var info = {      sendMessage:function(msg){        if(!men){          men = new xiaowangjia(msg);        }        return men;      },      abc:function(){        return 123;      }    };    return info;  })();  var xiaoli = {    callXiaowang:function(msg){      var _xw = xiaowang.sendMessage(msg);      alert(_xw.menling);      console.log(_xw.menling);      _xw = null;//等待垃圾回收      var abc = xiaowang.abc();      console.log(abc);    }  }  xiaoli.callXiaowang("didi");</script></body></html>

使用在線HTML/CSS/JavaScript代碼運(yùn)行工具 http://tools.VeVB.COm/code/HtmlJsRun測(cè)試運(yùn)行效果如下:

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 益阳市| 珲春市| 大厂| 突泉县| 阿坝县| 乐昌市| 兴化市| 天全县| 乌拉特中旗| 云浮市| 新巴尔虎左旗| 十堰市| 奉化市| 隆安县| 建宁县| 新河县| 襄城县| 内丘县| 乌拉特中旗| 井陉县| 绥江县| 磐石市| 左权县| 阳曲县| 高雄市| 高青县| 乐业县| 铜陵市| 扎赉特旗| 安丘市| 南靖县| 贞丰县| 文安县| 祥云县| 泰顺县| 将乐县| 中宁县| 甘谷县| 伊金霍洛旗| 绥宁县| 射洪县|