花括号的Javascript用法

时间:2014-10-07 05:34:04

标签: javascript curly-braces

我正在阅读 Eloquent Javascript ,我对这篇文章和花括号的用法有疑问:

  

这意味着花括号在JavaScript中有两个含义。在声明开始时,他们会开始一个声明块。在任何其他位置,他们描述一个对象。幸运的是,使用花括号对象启动语句几乎没用,在典型的程序中,这两种用法之间没有歧义。

和这段话:

  

type对象的值是属性的任意集合,和   我们可以随意添加或删除这些属性。一种创造方式   对象是使用大括号表示法。

var journal = [
  {events: ["work", "touched tree", "pizza",    
            "running", "television"],    
   squirrel: false},    
  {events: ["work", "ice cream", "cauliflower",    
            "lasagna", "touched tree", "brushed teeth"],    
   squirrel: false},    
  {events: ["weekend", "cycling", "break",    
            "peanuts", "beer"],    
   squirrel: true},    
  /* and so on... */   
];

上面的代码看起来像一堆属性及其数组值。括号在做什么?它们似乎将每个属性分组为数组值和布尔值。那是大括号在做什么的?根据定义,他们是开始一个陈述块还是描述一个对象?用大括号描述一个对象是什么意思? javascript中的对象只是一个属性的集合,其中1足以使它成为一个对象吗?

2 个答案:

答案 0 :(得分:4)

您发布的代码中只有一个声明:journal的声明和分配。它被初始化为一个对象数组,每个对象都有两个属性:eventssquirrel。假设"依此类推"继续该模式,每个events属性初始化为一个字符串值数组,每个squirrel属性被初始化为一个布尔值。

每对(方形)括号定义一个数组,每对花括号(大括号)定义对象。那是怎么回事。

关于你的问题"用大括号描述一个对象是什么意思?",这在documentation of JavaScript object literals中描述。

答案 1 :(得分:2)

这里的每个括号都是定义/创建一个对象。

括号只是创建该对象,就像那样简单。你可以把它当作面值。

This article非常适合真正深入了解事物(为什么使用它们以及它们是替代品)。