【发布时间】:2019-03-31 09:51:08
【问题描述】:
这应该很容易,但我似乎无法正确使用语法。
var newObject = {a:1,b:2,c:"three"};
var {...newObject} = newObject;
console.log(a); // returns undefined
我正在尝试自动解构我的对象。如果我使用它,我可以让它工作
var {a,b,c} = newObject
但我有一些长数组,不想输入所有变量
【问题讨论】:
-
不可能这样 - 你基本上是在寻找动态变量名,这很糟糕,只有像
eval这样的坏黑客才有可能 -
为什么需要太多变量?请改用循环。
-
用
newObject.a直接访问对象值有什么问题? -
我使用变量的方式不适合循环(我不会对每个变量做同样的事情)。我绝对可以直接访问对象值,这就是我现在正在做的事情,一遍又一遍地编写 newObject 似乎效率低下,所以做我想做的事情似乎仍然有用(但肯定没有必要) .
-
如果你最后丑化了你的代码,
newObject仍然会被缩小。顺便提一下,但完全不推荐的是 with-do 语句 — developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript ecmascript-6 spread-syntax