设计模式(惰性模块)
2016-09-23 17:54
204 查看
惰性模式:减少每次代码 执行时重复的分支判断,通过对对象重新定义屏蔽原对象中的分支判断。
浏览器兼容算是比较头疼的问题,大家都会遇到某些属性浏览器支持,有些不支持;就像早期的ie不支持addEventListener一样,每次需要针对ie写不同的代码判断去兼容。惰性模式就是为了减少每次重复判断。
惰性模式两种定义方式:
第一种:在文件加载初始化时候:(这是一种闭包方式,在初始化时候进行支持性判断后,重新定义)
第二种:在第一次调用定义的方法时候,重新定义
上述两种方法是为了减少每次在调用方法时候,重复性的判断。两种方法的区别:第一种:在加载初始化时候可能占资源,第二种:在第一次调用时候,需要重新定义,然后在方法最后需要自己再调用下新方法。两种方法可根据自己需要进行选择。
浏览器兼容算是比较头疼的问题,大家都会遇到某些属性浏览器支持,有些不支持;就像早期的ie不支持addEventListener一样,每次需要针对ie写不同的代码判断去兼容。惰性模式就是为了减少每次重复判断。
惰性模式两种定义方式:
第一种:在文件加载初始化时候:(这是一种闭包方式,在初始化时候进行支持性判断后,重新定义)
addevent = function(ele,type,fn) { if(document.addEventListener) { return function(ele, type, fn) { ele.addEventListener(type, fn, false) } } else if(document.attachEvent) { return function(ele, type, fn) { ele.attachEvent("on" + type, fn); } } else { return function(ele, type, fn) { ele["on" + type] = fn; } } }();
第二种:在第一次调用定义的方法时候,重新定义
onevent = function(ele, type, fn) { if(document.addEventListener) { onevent = function(ele, type, fn) { ele.addEventListener(type, fn, false) } } else if(document.attachEvent) { onevent = function(ele, type, fn) { ele.attachEvent("on" + type, fn); }; } else { onevent = function(ele, type, fn) { ele["on" + type] = fn; } } onevent(ele, type, fn) }
上述两种方法是为了减少每次在调用方法时候,重复性的判断。两种方法的区别:第一种:在加载初始化时候可能占资源,第二种:在第一次调用时候,需要重新定义,然后在方法最后需要自己再调用下新方法。两种方法可根据自己需要进行选择。
相关文章推荐
- Java---设计模块(装饰模式)
- Java之------单机版书店管理系统(设计思想和设计模式系列二)用户模块
- Java之------单机版书店管理系统(设计思想和设计模式系列七)库存模块
- Java之------单机版书店管理系统(设计思想和设计模式系列六)销售模块
- Java之------单机版书店管理系统(设计思想和设计模式系列二)用户模块
- 业务逻辑层的设计(四)——表模块模式简介
- Java---设计模块(装饰模式)
- 利用策略模式对用户模块的一个设计
- Java之------单机版书店管理系统(设计思想和设计模式系列五)进货模块
- 模块方法设计模式
- 业务逻辑层的设计(四)——表模块模式简介
- 设计模式之状态模块加观察者模式
- Jla框架介绍(五) 设计模式:模块和实例管理
- CEP的设计模式--构建模块
- 中介者设计模式在视频监控的显示图像模块中的应用
- 深度体验Javascript 模块设计模式
- Javascript 设计模式 -- Revealing Module(揭示模块)模式
- C++ 设计模式 —— 控制器设计模式(实现功能模块间通信)
- Java之------单机版书店管理系统(设计思想和设计模式系列四)图书模块
- 惰性函数定义模式 网页设计