function jQueryValidatorWrapper(formId, rules, messages) {
var validator = $("form:visible[id='" + formId + "']").validate({
onchange: false,
messages: messages,
rules: rules
});
this.validate = function (hideErrors) {
var showErrorMessage = hideErrors ? false : true;
// What does 'validator' refer to?
var result = validator.form();
};
}
当我执行此操作时,
var validatorObj = new jQueryValidatorWrapper('testForm', [], []);
validatorObj.validate();
jQueryValidatorWrapper
函数只有一个用this
声明的方法,所以当构造函数执行时,它只是用validate
方法创建了一个对象。
在validator
内声明的jQueryValidatorWrapper
变量会发生什么?它没有this
的前缀,因此它不是正在构造的对象的一部分。
validator
变量是全局变量吗?或者是闭包的一部分,即validate
方法?
答案 0 :(得分:4)
本地validator
变量不是全局变量;由于关闭,它只能在validate
方法中访问。
根据道格拉斯·克罗克福德的文章,它可以被视为jQueryValidatorWrapper
对象的“私人成员”:http://javascript.crockford.com/private.html
3个构造函数参数也是如此。