1、定义:定义一系类的算法,把它们一个个封装起来,并且使它们可以相互替换
2、解释:就是把算法和一个规则单独分封,在使用时单独调用。
简单例子:
var strategies = {
"S" : function (salary) {
return salary * 4;
},
"A" : function (salary) {
return salary * 3;
},
"B" : function (salary) {
return salary * 2;
}
}
var calculateBonus = function (level, salary) {
return strategies[level](salary);
};
console.log(calculateBonus('S', 20000))
我们也可以把表单验证封装起来:
var strategies = {
isNonEmpty : function (value, errorMsg) {
if(value === ''){
return errorMsg;
}
},
minLenght : function (value, lenght, errorMsg) {
if(value.length < lenght){
return errorMsg;
}
}
}