const vegetableColors = {corn: 'yellow', peas: 'green'}; const {*} = vegetableColors; console.log(corn);// yellow console.log(peas);// green
我似乎找不到或不知道如何做到这一点,但我真的以为我以前看过它!:P
注: 我使用的是babel与stage设置为0;
stage
0
语境: 我试图在JSX中变得更干燥,而不是引用this.state或this.props无处不在。而且,如果数据发生更改,也不必继续添加属性以进行解构。
this.state
this.props
我认为您正在寻找该with声明,它完全符合您的要求:
with
const vegetableColors = {corn: 'yellow', peas: 'green'}; with (vegetableColors) { console.log(corn);// yellow console.log(peas);// green }
但是,出于充分的原因, 不推荐使用 (在严格模式下,其中包括ES6模块)。
将所有属性分解为当前范围
您无法在ES61中使用。那是一件好事。明确介绍要引入的变量:
const {corn, peas} = vegetableColors;
或者,可以使用扩展全局对象,Object.assign(global,vegetableColors)以将它们置于全局范围内,但实际上,这比with声明要糟糕。
Object.assign(global,vegetableColors)
1:…虽然我不知道ES7中是否有允许这种事情的草案,但我可以告诉您,任何提案都会被TC否决:-)