【发布时间】:2015-09-08 10:05:47
【问题描述】:
这最好通过例子来解释。以下在 es6 中用于创建由现有对象的一些键组成的对象:
var o = {a:1, b: 2, c: 3}
var {a, c} = o
var subsetObj = {a, c} // will be: {a:1, c:3}
这里有两个缺点:
- 创建所需的子集对象需要两个语句和两行代码
- 我们不得不通过创建中间变量
a和c来污染局部变量范围,这些变量在本地不需要,除非作为创建子集对象的一种方式。
有没有办法在一个语句中完成同样的事情,而不引入不必要的本地人a 和c?
【问题讨论】:
-
为什么需要特殊的语法?为什么不使用 lodash 或其他东西,例如
var o = {a:1, b: 2, c: 3}; _.pick(o, ['a', 'c']) -
它不需要它,它会很好。如果我发现自己非常需要它,我只会创建一个辅助函数,而不是引入所有的 lodash。这个问题专门针对原生语法支持——问题本身显然很容易解决。
-
完全,只是想提一下。