繁体   English   中英

需要帮助来理解JavaScript中“:”的用法

[英]Need help to understand the usage of “:” in JavaScript

我正在使用jQuery validate插件,当我遇到以下脚本时,我认识到,我在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" } } }); 

请帮助我了解谁是“规则”“电话”在这里? 它们是列表元素,还是对象的变量? 为什么我们通过以下方式称呼它们?

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

非常感谢

除了少数基本类型(数字,字符串,布尔值,空和未定义)之外,一切都是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库经常期望一个对象作为方法的参数。 为了向您提供另一个库的示例,这是使用Google Maps API v3构建地图的方式

var map = new google.maps.Map(document.getElementById('map'), { 
   mapTypeId: google.maps.MapTypeId.ROADMAP,
   center: new google.maps.LatLng(39.904667, 116.408198),
   zoom: 12
});

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

这实际上并不特定于jQuery,但实际上是JSON(它只是vanilla 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经常使用这种结构,以便能够方便地将大量参数传递给插件函数。 这很方便,因为您只能在函数调用中指定一个参数时传入许多选项,并且只有在调用者指定了备用值时,您才能轻松设置被覆盖的默认值。

rulesphoneJavascript对象文字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM