我正在构建一个小的“验证”对象,它基本上公开了一个验证方法,并获取一个元素的 id 和一组验证器,然后返回 true 或 false。
基本上这就是我想要实现的
var Validator = function() {
var no_digits = function( el ) {
return true;
}
var no_uppercase_letters = function( el ) {
return true;
}
return {
validate: function( element_id, validators ) {
//here i would like to iterate on the validators array and for each
//element of the array i would like to check if a function of the same name
// exist and call that function passing the element
}
}
}();
然后这样称呼它
var element_valid = Validator.validate( 'myid', [ "no_digits", "no_uppercase_letters"] );
其中第二个参数是我想调用的验证器数组。
关于一个好的面向对象方法的任何建议?我想保持验证函数私有,否则我可以这样做
var Validator = function() {
return {
validate: function(element_id, validators) {
console.log(this);
this[validators]();
// Validator[validators](element_id);
},
no_digits: function(el) {
alert('hi');
return true;
},
no_uppercase_letters: function(el) {
return true;
}
}
}();
但我宁愿将 no_gits 和 no_uppercase_letters 函数保持为私有
var element_valid = Validator.validate('myid', "no_digits");