需要帮助了解“的用法”:&引用;在JavaScript中

需要帮助了解“的用法”:&引用;在JavaScript中,javascript,jquery,syntax,Javascript,Jquery,Syntax,我正在使用jQuery插件,当我遇到以下脚本时,我意识到,我不理解jQuery中的很多东西:) 请看 $("#invitationform").validate({ rules: { phone: 列表项 { required: true, minlength: 6, number:true } }, messag

我正在使用jQuery插件,当我遇到以下脚本时,我意识到,我不理解jQuery中的很多东西:)

请看

$("#invitationform").validate({
        rules: 
        {
            phone: 
  • 列表项

            {
                required: true,
                minlength: 6,
                number:true
            }
        },
        messages: 
        {
            phone: 
            {
                required: "Please enter a phone number",
                minlength: "Your number must consist of at least 6 digits"
            }
        }
    });
    
请帮助我了解谁是这里的“规则”,以及“电话”?它们是类似于列表元素,还是对象的变量?为什么我们通过给他们打电话:

简短的解释,或一些文档上的链接将非常好


非常感谢

规则
和电话是。

除了少数基本类型(数字、字符串、布尔值、null和未定义)之外,一切都是JavaScript中的对象(甚至函数)

对象基本上是属性的容器,对于收集和组织数据非常有用

创建对象的一种常用方法是使用,其中属性名称与值之间用冒号分隔
符号:

var myFirstObject = {
   'name': 'Bobby',
   'surname': 'Smith'
};
如果名称是合法的JavaScript标识符而不是保留字,则属性名称周围的引号是可选的。属性的名称可以是任何字符串。对象可以包含其他对象,因此它们可以轻松表示树或图形:

var myFlight = {
   'airline': 'Airline Name',
   'number': 'AN700',
   'departure': {
      'IATA': 'SYD',
      'time': '2010-09-04 23:10:00'
   },
   'arrival': {
      'IATA': 'LAX',
      'time': '2010-09-05 05:14:00'
   }      
};
JavaScript对象也是一种方便的数据结构。您可以轻松地执行以下操作:

var myHashTable = {};
myHashTable['name'] = 'Bobby';
myHashTable['surname'] = 'Smith';
// subscript notation:
alert(myHashTable['name'] + ' ' + myHashTable['surname']);
// dot notation: (equivalent)
alert(myHashTable.name + ' ' + myHashTable.surname);
jQuery和许多其他JavaScript库通常期望对象作为方法的参数。为了给您提供另一个库中的示例,以下是如何使用


请注意,由于JavaScript的工作方式,我们可以轻松地将可读的复杂结构作为函数参数传递。

这实际上不是特定于jQuery的,而是JSON(它只是普通JavaScript的一部分。正如pygorex所指出的,它们是对象文字,也就是说它们是对象的属性名)

这意味着,例如,如果要使用该符号创建对象,而不是将其传递到函数中,则可以调用它们包含的值。例如,如果您这样做:

var options = {
    rules: 
    {
        phone: 
        {
            required: true,
            minlength: 6,
            number:true
        }
    },
    messages: 
    {
        phone: 
        {
            required: "Please enter a phone number",
            minlength: "Your number must consist of at least 6 digits"
        }
    }
};
然后,您可以这样做:

var isPhoneRequired = options.rules.phone.required;
jQuery经常使用这种结构,以便提供一种方便的方法将多个参数传递到插件函数中。这种方法很方便,因为您可以在函数调用中只指定一个参数的情况下传递多个选项,并且您可以轻松设置默认值,只有在调用者。

此外,哈希表(x['y'])符号和点符号(x.y)是相等的,因此myHashTable.name==myHashTable['name']。
var isPhoneRequired = options.rules.phone.required;