【问题标题】:In JavaScript, what are curly braces around a property name? [duplicate]在 JavaScript 中,属性名称周围的花括号是什么? [复制]
【发布时间】:2020-01-30 16:43:14
【问题描述】:

在对 JavaScript ES6+ 进行一些练习时,我遇到了一个我不理解的语法。在下面的代码中,长度属性是怎么来的 {name:{length:l}} 不是以对象和DOT为前缀吗?我习惯于看到这样使用的长度属性:str.length;

注意:我使用 console.log 只是为了查看值。

const bob = { name: 'Bob' };
const alice = { name: 'Alice' };
const foundAt = [bob, alice].findIndex(({ name: { length: l } }) => console.log(l))

【问题讨论】:

  • 您发布的代码记录了0 两次。因为,您正在创建一个值设置为o.name.lengthl 变量。所以,length 指的是window.length。所以,如果你 console.log(l),你应该看到 35 是字符串的长度
  • 是的,这是一个错字。请忽略那部分
  • Window.length 为 1,而上述 sn-p 的结果为 -1,因为测试函数不提供结果。
  • 我把它改成了你说的 console.log(l)

标签: javascript ecmascript-6 syntax


【解决方案1】:

这称为destructuring,可用于从数组和对象中提取属性。

【讨论】:

  • 好的,所以在代码中,他们只是为默认情况下已经属于该对象的长度提供了一个别名“l”?
  • 是的,它使用它是因为它很方便避免每次都提供完整路径或逐个变量分配它。它还提供了您期望的对象的清晰形状
猜你喜欢
  • 2014-10-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 2016-04-21
相关资源
最近更新 更多