轻松掌握JavaScript策略模式

前端之家收集整理的这篇文章主要介绍了轻松掌握JavaScript策略模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

定义:定义一系列的算法,把它们一个个封装成函数,也可把它们作为属性统一封装进一个对象,然后再定义一个方法,该方法可根据参数自动选择执行对应的算法。

一般用于在实现一个功能时,有很多个方案可选择的情况。

例子1:根据员工薪水salary、绩效等级S、A、B、C,来计算年终奖

自动选择算法的方法 var calculateBonus = function(level,salary){ return strategies[level](salary); } //使用 calculateBonus('S',9000); //36000 calculateBonus('B',5000); //10000

例子2:表单验证

max || value.length < min){ return errorMsg; } } isSame:function(oldValue,newValue,errorMsg){ if(newValue !== oldValue){ return errorMsg; } } isMobile:function(value,errorMsg){ if(!/(^1[3|5|8][0-9]{9}$)/.test(value)){ return errorMsg; } } ...... }

也可不定义以下的Validator类,直接在触发失去焦点事件时调用strategies对象的属性方法来验证当前input项

使用:

用户名不能为空'},{strategy:'outRangle:6:12',errorMsg:'用户名长度为6-12位'} ]); ...... var errorMsg = validator.start(); ......

附:

参数配置对象 假如有一个函数foo(a,b,c,d,e,f...),它的参数很多,这样的函数不好使用,参数不好记!比较好的方法是使用一个对象来包含这些参数,然后再把该对象传递给函数函数再对这个对象的属性做处理

这样一来,使用函数时就不必去记参数顺序了,只需记住参数对象的几个属性名字就行,不易出错

参考文献:

《JavaScript模式》 《JavaScript设计模式与开发实践》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的JavaScript相关文章