私はバリデータ ライブラリに取り組んでいます。PHP から来て、バリデータと制約を使用してバリデータと同様の設定を行いたいと思います (値、オブジェクトは、選択した制約に対してバリデータによって検証されます)。
したがって、制約に取り組んでいると、次の問題があります。
制約はすべて同じプロパティを共有しますが、実装がわずかに異なります。
例:
Constraint = Validator.Constraint = {
name: null, // contains the name of the constraint
value: null, // contains the value which we want to validate
options: {}, // contains options for some Constraints (e.g. range)
message: null, // contains the error message which is getting returned
validate: function(){}, // the validation logic
constructor: function(value, options){
this.value = value;
this.options = options;
this.validate();
} // the constructor which can be called for stand-alone validation
};
今、どういうわけか Constraint を拡張してカスタマイズしたいと思います:
RequiredConstraint = Validator.RequiredConstraint = {
name: "required",
message: "this property is required",
validate: function(){
if (this.value != "" || this.value != undefined || this.value != null) {
return;
}
return this.message;
}
// other properties get inherited
};
制約は、次のように使用できるはずです。
RequiredConstraint("");
// returns false
私は2つのことを知りたいと思っています:
- 最初に、JavaScript が別の言語であり、これには動的すぎる場合でも、このプログラミング スタイルを使用することをお勧めしますか?
- それでも良い方法である場合、上記のような動作をどのように実装できますか? どのようなキーワードを探す必要がありますか?
よろしく