私は、基本的にバリデーションメソッドを公開し、1つの要素のIDとバリデータの配列をとり、trueまたはfalseを返す小さな「Validate」オブジェクトを構築しています。javascriptの文字列からプライベート関数を呼び出す方法は?
は、基本的には、これは私が
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
}
}
}();
を達成した後、第2パラメータiが呼び出すしたいバリデータの配列がある。この
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;
}
}
}();
を行うことができますが、私はむしろ
VARプライベートno_gits no_uppercase_letters機能を維持したいですelement_valid = Validator.validate( 'myid'、 "no_digits");
私はあなたが何を求めているのかよく分かりませんでした。あなたのコードは私にはうまく見えます... – gdoron
JavaScriptで実際にパラメータとして関数を渡すことができます。したがって、おそらくarrayの要素が関数である[validateNoDigits、validateNoUppercaseLetters]という2番目の引数を渡す必要があります。 – daeq
@gdoronは基本的に配列の繰り返しを行い、変数の名前と同じ名前の関数を呼び出す必要があります。私は自分の質問を編集しました –