【发布时间】:2014-10-14 05:06:53
【问题描述】:
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 方法创建了一个对象。
在jQueryValidatorWrapper 中声明的validator 变量会发生什么?它没有以this 为前缀,因此它不是正在构造的对象的一部分。
validator 变量是全局变量吗?还是 validate 方法的闭包的一部分?
【问题讨论】:
-
validator不是全局变量...虽然它会存在于闭包中 -
构造函数仍然是函数。局部变量的处理方式或作用域的工作方式没有区别。
标签: javascript