定义的一组算法(封装的功能或者模块,具有多种键的json对象被一个统一的方法管理)封装起来,使其相互之间可以替换。
适合表单验证
//策略
var strategy={
jump:function (who) {
console.log(who+‘ is jump‘);
},
run:function (who) {
console.log(who+‘ is run‘);
}
};
//统一处理方法
var useStrategy=(function () {
return{
on:function (arg1, arg2) {
strategy[arg1] && strategy[arg1](arg2);
},
add:function (param, fn) {
if(typeof strategy[param]===‘undefined‘){
strategy[param]=fn;
}else{
console.warn(‘这个方法已经存在‘);
}
}
}
})();
useStrategy.on(‘jump‘,‘james‘);
useStrategy.add(‘jump‘,function () {
console.log(‘1‘)
});
useStrategy.add(‘eat‘,function () {
console.log(‘eating‘)
});
useStrategy.on(‘eat‘)