我正在研究一個來自PHP的驗證器庫我想驗證一個類似的設置與驗證器和約束(值,對象得到驗證器對驗證選定的約束)。Javascript:如何使用「傳統的OOP」
所以工作的限制,我有以下問題:
約束都有着相同的性質只是實現略有不同。
例子:
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
};
現在我想以某種方式延長約束和定製:
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
我知道想知道兩件事:
- 首先,如果根本推薦使用這種編程風格,即使JavaScript是另一種語言,並且對此也太動態了?
- 如果仍然很好練習,我怎麼能實現上面描述的行爲? 我必須尋找什麼關鍵詞?
問候
我建議學習* JavaScript方法*,即[原型繼承](https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_and_the_prototype_chain)。然後,當你獲得更多的舒適時,瞭解[這些高級模式](http://addyosmani.com/resources/essentialjsdesignpatterns/book/)。對於這種特殊情況,我會說不要重新發明輪子並使用[我自己的插件](http://elclanrs.github.com/jq-idealforms/)來驗證您的表單。 – elclanrs 2012-07-13 10:43:15