nea*_*sic 2 javascript destructuring ecmascript-6
我一直试图弄清楚嵌套的ES6解构是否支持这种功能.a如果它不存在,我想指定为空对象,然后将其属性名称分配给b范围变量b.
var {
a = {},
a: {
b = 2,
},
} = {};
VM40:4 Uncaught TypeError: Cannot destructure property `b` of 'undefined' or 'null'.
at <anonymous>:6:5
Run Code Online (Sandbox Code Playgroud)
在没有假设对象格式的情况下,我似乎无法真正嵌套解构.以下工作,但我正在寻找一个更简洁的方法,您可以轻松地看到原始对象的嵌套布局.
var {
a = {},
} = {};
var {
b = 2,
} = a;
// works as expected
// starts to look crazy when 'forking' branches that may or may not exist
Run Code Online (Sandbox Code Playgroud)
您正在寻找
var {
a: {
b = 2,
} = {},
// ^^^^
} = {};
Run Code Online (Sandbox Code Playgroud)
默认初始化程序位于目标之后(这是内部解构表达式).如果您正在寻找初始化两个变量a和b,还有别的不多,你可以做其他的比有两个任务:
var {
a = {},
} = {},
{
b = 2,
} = a;
Run Code Online (Sandbox Code Playgroud)
这可能看起来比var你做的两个声明更清晰.如果您坚持在一个嵌套表达式中执行此操作,则可以执行此操作
var {
a = {}, // short for `a: a = {}`
a: {
b = 2,
} = a, // use either `a` or another empty object as the default
} = {};
Run Code Online (Sandbox Code Playgroud)
但我认为那是不可思议的.
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |