我正在阅读 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足以使它成为一个对象吗?
答案 0 :(得分:4)
您发布的代码中只有一个声明:journal
的声明和分配。它被初始化为一个对象数组,每个对象都有两个属性:events
和squirrel
。假设"依此类推"继续该模式,每个events
属性初始化为一个字符串值数组,每个squirrel
属性被初始化为一个布尔值。
每对(方形)括号定义一个数组,每对花括号(大括号)定义对象。那是怎么回事。
关于你的问题"用大括号描述一个对象是什么意思?",这在documentation of JavaScript object literals中描述。
答案 1 :(得分:2)