initialize: function() {
this.validators = new Object();
new Validator(this.validators);
new NumberValidator(this.validators);
}
在这个函数中 通过new Validator(this.validators); new NumberValidator(this.validators);使用this.validators初始化了两个对象Validator,NumberValidator;
然后就可以通过类似this.validators[type].validate(input, errordiv); 来选择是调用Validator还是NumberValidator中的validate函数了,这是为什么。。。。。。。
其中Validator,NumberValidator中都有定义validators[this.type] = this;
这是我看AJAX实战上面的一个可复用有效性验证的源码
没明白你问啥..是在自问自答么..
因为
[quote]其中Validator,NumberValidator中都有定义validators[this.type] = this; [/quote]
所以自然会
[quote]this.validators[type].validate(input, errordiv); 来选择是调用Validator还是NumberValidator中的validate函数了[/quote]
因为validators[this.type] = this;把Validator/NumberValidator也就是this赋值给validators这个object的一个成员.
那自然this.validators[type]可以得到Validator/NumberValidator