何时应使用对象特性速记?

我知道它在对象键和值相同的情况下使用(即cat: cat可以改写为cat).但是当我查看代码示例时,我搞不清哪些情况下它们的键和值彼此相等。

let cat = 'Miaow';
let dog = 'Woof';
let bird = 'Peet peet';

let someObject = {
  cat,
  dog,
  bird
}

console.log(someObject);


解决方案

来自文档:

ECMAScript 2015中的新符号1

在不支持的环境中,这些表示法将导致语法错误。

// Shorthand property names (ES2015)
let a = 'foo', b = 42, c = {};
let o = {a, b, c}

// Shorthand method names (ES2015)
let o = {
  property(parameters) {}
}

// Computed property names (ES2015)
let prop = 'foo'
let o = {
  [prop]: 'hey',
  ['b' + 'ar']: 'there'
}

这些表示法不适用于Internet Explorer。

有关详细信息,请参阅

  • MDN JavaScript Reference - Object Initializer - New notations in ECMAScript 2015
  • MDN JavaScript Reference - Object Initializer - Browser Compatibility

相关文章