【发布时间】:2016-08-16 07:17:01
【问题描述】:
有没有一种优雅的解决方案来解构对象而不指定对象的所有属性?
我想知道是否可以使用扩展运算符,但似乎不可能,因为对象不是数组!
我想盲目地声明变量可能被认为是一个坏主意,但我认为这对于非常大的对象很有用。
【问题讨论】:
-
您到底想做什么?
with构造可以做到这一点,但出于各种原因,我真的不推荐它。部分实施解构以解决with问题。否则,在 ES7 中有一个 Object spread/rest 提议:github.com/sebmarkbage/ecmascript-rest-spread 但是传播不是解构。 -
考虑一下你用这个实现了什么,以及你认为你“节省”了什么。您会得到很多可以在下面使用的变量,但是您“保存”了声明。那有什么用?当您开始使用它们时,将属性添加到解构赋值中不是更好吗?您的代码看起来会更干净,并且不会声明无用的变量。此外,如果您有非常大的对象需要在代码中读取/改变许多属性,这对我来说是一种气味。
标签: javascript ecmascript-6 destructuring