ai didi

javascript - 如何处理 JavaScript 构造函数中声明的变量?

转载 作者:行者123 更新时间:2023-11-30 10:11:32 24 4
gpt4 key购买 nike

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 变量不是全局的;由于闭包,它只能在 validate 方法中访问。

它可以被视为 jQueryValidatorWrapper 对象的“私有(private)成员”,根据 Douglas Crockford 的文章:http://javascript.crockford.com/private.html

3 个构造函数参数也是如此。

关于javascript - 如何处理 JavaScript 构造函数中声明的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26353002/

24 4 0
文章推荐: javascript - 为javascript中的每个元素添加一个值
文章推荐: java - 正则表达式多行 checkstyle 模块不工作
文章推荐: javascript - $.getJSON 不触发 console.log
文章推荐: javascript - 如果当前 url 包含,JS 将用户重定向到不同的页面。
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com