Javascript jquery中的$.Variable,在这种定义方式中有些混乱

Javascript jquery中的$.Variable,在这种定义方式中有些混乱,javascript,jquery,Javascript,Jquery,我在validate插件jquery中找到了一些代码。但我不理解变量和函数之间的一些概念差异: 代码是: $.validator = function(options,form){ this.settings=$.extend(true,{},validator.defaults,options); this.currentForm=form; this.init(); } 但验证器不是插件,因为插件jquery必须定义$.fn.validator。但它也不是一个变量,

我在validate插件jquery中找到了一些代码。但我不理解变量和函数之间的一些概念差异: 代码是:

$.validator = function(options,form){
    this.settings=$.extend(true,{},validator.defaults,options);
    this.currentForm=form;
    this.init();
}
但验证器不是插件,因为插件jquery必须定义$.fn.validator。但它也不是一个变量,因为$。在它前面签名


那些能为我解释的人???

他们只是在
$
jQuery
)函数上添加了一个函数作为属性。就像jQuery本身添加了
$.extend
$。每个
$.ajax
一样,这个验证器插件正在向它添加
$.validator
。它仍然是一个插件(某种程度上),只是它没有定义一个可以在jQuery实例上调用的方法。您只能调用它的一个全局版本

给定函数的功能,它似乎希望通过
new
调用,例如:

var v = new $.validator();

它真的应该有一个大写字母
V
,并且它真的应该防止被直接调用,因为如果它被直接调用,它内部的行为是错误的

变量是可以存储一段数据的东西

对象上的属性是可以在其中存储数据的其他属性


$
是一个变量。它的值是jQuery函数

$。验证器
是jQuery函数的一个属性。您拥有的代码正在为其分配函数

$.fn.validator
将是存储在jQuery对象的
fn
属性中的对象的属性。它也可以有一个存储在里面的值,但在代码中没有


fn
函数的属性可以从jQuery对象链接起来。i、 e.使用现有代码,您可以调用
$.validator()
,但是如果您有
$.fn.validator
,那么您可以调用
$(“div”).validator()

您能为我们提供一个到原始源代码的链接吗。有很多不同的jquery插件验证程序……但我在网站的jquery.validate.js中找到了它。它起作用了well@Lêôôn:除了在您引用的代码中添加的
validator
函数外,它还明确定义了一个插件方法
validate
。我仍然认为您引用的函数可能需要一些改进,如果使用不当,它们会导致可怕的副作用。构造函数$.validator从未直接使用过,它在$.fn.validate中使用。@jcubic:如果它不打算由插件外的代码使用,那么它不应该是一个公共函数。