【问题标题】:What is the difference between these types of destructuring [duplicate]这些类型的解构有什么区别[重复]
【发布时间】:2020-02-27 19:33:14
【问题描述】:

我在存储库中看到了这个,但我不太确定到底发生了什么。 var 值是被替换了还是取自 var 数据的值的子问题?

const { value: question } = data;
const { value } = data;

【问题讨论】:

  • 只是重命名。 { value: question } = data 获取属性value 并将其分配给名为question 的局部变量。第二个获取属性value 并将其分配给名为value 的局部变量。

标签: javascript


【解决方案1】:

对象的解构属性

const { value } = data;

创建一个名为value 的块范围常量,并将data.value 赋值给它。

它与

相同
const value = data.value;

解构不同变量名下对象的属性

const { value: question } = data;

创建一个名为question 的块范围常量,并为其赋值data.value

它与

相同
const question = data.value;

【讨论】:

    【解决方案2】:

    可以从对象中解压缩属性并将其分配给名称与对象属性不同的变量。

    var o = {p: 42, q: true};
    var {p: foo, q: bar} = o;
    
    console.log(foo); // 42 
    console.log(bar); // true
    

    例如,这里的 var {p: foo} = o 从对象 o 中获取名为 p 的属性并将其分配给名为 foo 的局部变量。

    MDN - Destructuring assignment

    【讨论】:

      猜你喜欢
      • 2016-06-03
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      相关资源
      最近更新 更多