gpt4 book ai didi

javascript - 如何在 ES2015 中将所有属性解构到当前作用域/闭包中?

转载 作者:行者123 更新时间:2023-12-03 03:23:23 28 4
gpt4 key购买 nike

我想做这样的事情:

const vegetableColors = {corn: 'yellow', peas: 'green'};

const {*} = vegetableColors;

console.log(corn);// yellow
console.log(peas);// green

我似乎找不到或弄清楚如何做到这一点,但我真的以为我以前在某个地方见过它! :P

注意:我正在使用Babelstage 设置为 0

上下文:我正在努力让 JSX 变得更加干燥。并且不要到处引用 this.statethis.props 。如果数据发生变化,也不必不断添加属性来解构。

最佳答案

我认为您正在寻找 with statement ,它完全符合您的要求:

const vegetableColors = {corn: 'yellow', peas: 'green'};
with (vegetableColors) {
console.log(corn);// yellow
console.log(peas);// green
}

但是,它被弃用(在严格模式下,包括 ES6 模块),这是有充分理由的。

destructure all properties into the current scope

在 ES61 中不能。 And that's a good thing 。明确您要引入的变量:

const {corn, peas} = vegetableColors;

或者,您可以使用 Object.assign(global, VeteColors) 扩展全局对象,将它们放入全局范围内,但实际上,这比 with 更糟糕声明。

1:……虽然我不知道 ES7 中是否有允许此类操作的草案,但我可以告诉你,任何提案都将被 TC 否决:-)

关于javascript - 如何在 ES2015 中将所有属性解构到当前作用域/闭包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31907970/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com