首页 > 解决方案 > Javascript 解构询问

问题描述

我有以下 javascript 代码:

const {
  tr,
  selection: { $from }
} = state;

我知道上面是一个解构结构,但我不确定这: { $from }部分,因为对象中没有$from属性selection(见截图)......

tr两者都没有state...

有人可以解释一下吗?

在此处输入图像描述

编辑:实际上,确实有一个$from属性(见截图),但它是嵌套的。有人可以解释解构如何获取嵌套属性吗?

在此处输入图像描述

标签: javascriptdestructuring

解决方案


解构允许您将对象字段解压缩为新变量。

例如,如果您的state对象如下所示:

state = {
   selection: {
       ranges = [1,2,3],
       $head = "abc"
   },
   storedMarks = 99
}
const { selection, storedMarks } = state // destructuring

console.log(selection) // > { ranges:.., $head... } 
console.log(storedMarks) // > 99

新变量selectionstoredMarks已创建。

如果您尝试检索tr$from

const {
  tr,
  selection: {
     ranges: [
        $from: myFromValue
     ]
  }
} = state;

console.log(tr); // will print your tr value that is in `state` object, if it exists
console.log(myFromValue); // will print your $From value


推荐阅读