3.js模式-策略模式
1. 策略模式
策略模式定义一系列的算法,把它们封装起来,并且可以互相替换。
var strategies = {
isNonEmpty: function(value,errMsg){
if(value === ''){
return errMsg;
}
},
minLength:function(value,length,errMsg){
if(value.length < length){
return errMsg;
}
}
}
var validator = function(){
this.cache = [];
}
validator.prototype.add = function(dom,rule,errMsg){
var array = rule.split(':');
this.cache.push(function(){
var strategy = array.shift();
array.unshift(dom.value);
array.push(errMsg);
return strategies[strategy].apply(dom, array);
});
}
validator.prototype.validate = function(){
for(var i =0,validatorFunc;validatorFunc=this.cache[i++];){
var msg = validatorFunc();
if(msg){
return msg;
}
}
}
validator.add(form.name,'isNonEmpty','用户名不能为空');
validator.add(form.name,'minLength:10','用户名不能为空');
validator.validate();
- 2.js模式-单例模式
- JavaScript基础——类型、值和变量
- javascript中onSubmit="return xxx()"的问题
- js验证函数摘录
- JavaScript基础知识
- JavaScript 数组
- 理解JavaScript中的事件轮询
- WebApi传递JSON参数 接收不到参数
- Gson解析JSON中动态未知字段key的方法
- [LeetCode][JavaScript]Path Sum II
- javascript动态添加css样式
- [LeetCode][JavaScript]Path Sum
- Javascript在页面的执行顺序
- Angular.js学习笔记(一)
- 转载js入门须知
- JavaScript Core -- 理解闭包
- JavaScript Core -- 事件
- JavaScript BOM -- setTimeout()和setInterval() 常见问题
- IDF实验室之不难不易的js加密
- JavaScript Core -- 包装对象