我想知道在破坏对象时是否可以使用动态表达式:
假设:
//basic de-structure example
var a = {b: 1};
var {b: c} = a; // stores 1 in c
//what I want to do
var { (b > 0): isItHigher = false} = a; // want isItHigher to be true
它可能是我不知道的语法,但实际上,我想针对原始对象属性计算表达式并将其存储在新变量中。这可能吗?
答案 0 :(得分:3)
您可以使用destructuring defaults来完成此操作。默认值还可以包括基于您已经提取的值的表达式:
var a = { b: 1 };
var { b, isItHigher = b > 0 } = a;
console.log(isItHigher);
@Anko notes a caveat:此方法还会创建一个变量b
,根据上下文可能会不必要地污染命名空间。