除了属性之外,还为结构化对象创建变量

pai*_*ead 13 javascript ecmascript-6

我有:

const { state: { mode } } = this

console.log(mode) //'mode'
console.log(state) //undefined
Run Code Online (Sandbox Code Playgroud)

我也想声明state变量.

有没有办法在不将其分成两个陈述的情况下对其进行解构?

const { state } = this
const { mode } = state
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 13

当然,只需使用逗号,就好像您要破坏父对象的另一个属性:

const obj = { state: { mode: 'str' }};
const { state: { mode }, state } = obj;
console.log(mode);
console.log(state);
Run Code Online (Sandbox Code Playgroud)

请注意,这看起来非常相似,但import您可能看到的以下语法不同:

import React, { Component } from 'react'
Run Code Online (Sandbox Code Playgroud)

这里,括号中的变量名为exports,而普通变量是默认导出,这与嵌套对象完全不同.