javascript設計模式閱讀後的感悟與總結

來源:互聯網
上載者:User

標籤:個人   class   click   singleton   java   dex   gets   分離   初始化   

  • 單例模式

  用於建立唯一的一個對象。

  核心在於一個判斷

  var index  if(index){  return index;  }  init();  這樣只會在第一次的時候初始化建立對象,以後都不會再建立對象。  還有閉包內的變數不會銷毀,例如index可以始終存在。  js的實現:  
 1   var getSingle = function (fn) { 2     var result; 3     return function () { 4       return result || (result = fn.apply(this, arguments)); 5     }; 6   }; 7   //建立登陸div 8   var createSingletonLoginLayer = getSingle(function () { 9     var div = document.createElement(‘div‘);10     div.innerHTML = ‘我是懸浮窗‘;11     div.style.display = ‘none‘;12     document.body.appendChild(div);13     return div;14   });15 16   document.getElementById(‘loginBtn‘).onclick = function () {17     var loginLayer = createSingletonLoginLayer();18     loginLayer.style.display = ‘block‘;19   };20   //建立iframe21   var createSingleIframe = getSingle(function () {22     var iframe = document.createElement(‘iframe‘);23     document.body.appendChild(iframe);24     return iframe;25   });26 27   document.getElementById(‘loginBtn2‘).onclick = function () {28     var loginLayer = createSingleIframe();29     loginLayer.src = ‘http://baidu.com‘;30   };

 

  • 策略模式

  個人感覺這個模式挺囉嗦的,挺短的幾行代碼用完這個模式就變得貌似又臭又長,所以可用在驗證、以及可以複用的組件等地方。 不能複用真的感覺寫這麼長一串不值。

  個人感覺這個模式核心在於把條件放在對象中代替用if來代替

  策略模式的目的是將演算法的使用與演算法的實現分離開來。

 

  • 代理模式

  

 

javascript設計模式閱讀後的感悟與總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.