基本的に検証メソッドを公開し、1 つの要素の 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"] );
2 番目のパラメーターは、呼び出したいバリデーターの配列です。
優れたオブジェクト指向のアプローチに関する提案はありますか?検証関数を非公開にしたいのですが、それ以外の場合は可能です
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");