ES6的新的破坏性赋值特性现在已经相当为人所知(活拷贝 on Babel‘Babel);对于已经存在的变量:
let a, b; // Existing variables
let o = {a: "a", b: "b"}; // An object to get values from
// ...
({a, b} = o); // Set them to the props from `o`
console.log(a); // "a"
console.log(b); // "b"
在ES6中有简单的逆流吗?根据同名变量设置现有对象的属性?(不包括明显的o.a = a; o.b = b;
)
注意,我不是在创建对象时,我们可以使用奇妙的新对象初始化器语法来做到这一点,它允许我们不必不必要地重复名称:
let a = "a";
let b = "b";
let o = {a, b};
但是如果我已经有了一个对象,我可以在ES6中执行某种结构化的赋值吗?
发布于 2015-06-17 18:28:59
一些实验的东西,建立在你回答的基础上。
如果你想得到一点厚颜无耻,你可以模仿它的分配部分与设置者。当然不实用,但这是一个有趣的方法,可以看到外部的行为可能是什么样子,如果您可能可以空分配o[] =
。(巴贝尔
let a = '1', b = '2';
let o = {z: '26'};
Object.defineProperty(Object.prototype, '', {
set: function (o) {
Object.assign(this, o);
}, configurable: true
});
o[''] = {a, b};
同样的问题,你面对你的答案,其实更多,但一些食物的思考。
https://stackoverflow.com/questions/30897961
复制相似问题