首页 > 代码库 > javascript设计模式阅读后的感悟与总结
javascript设计模式阅读后的感悟与总结
- 单例模式
用于创建唯一的一个对象。
核心在于一个判断
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://www.mamicode.com/‘http://baidu.com‘;30 };
- 策略模式
个人感觉这个模式挺啰嗦的,挺短的几行代码用完这个模式就变得貌似又臭又长,所以可用在验证、以及可以复用的组件等地方。 不能复用真的感觉写这么长一串不值。
个人感觉这个模式核心在于把条件放在对象中代替用if来代替
策略模式的目的是将算法的使用与算法的实现分离开来。
- 代理模式
javascript设计模式阅读后的感悟与总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。