Javascript JS ES6:通过解构将参数作为对象获取
是否可以使用解构将函数的参数作为对象获取(以便在其上迭代)Javascript JS ES6:通过解构将参数作为对象获取,javascript,ecmascript-6,destructuring,Javascript,Ecmascript 6,Destructuring,是否可以使用解构将函数的参数作为对象获取(以便在其上迭代) function({a=1, b=2, c=3}={}) { // how to get {a:1, b:2, c:3}? } 我的目标是将每个参数绑定到类构造函数中的this 无需破坏结构即可实现: class Test { constructor(args) { Object.assign(this, args); } } 但我不知道如何简化: class Test { constructor({a=1,
function({a=1, b=2, c=3}={}) {
// how to get {a:1, b:2, c:3}?
}
我的目标是将每个参数绑定到类构造函数中的this
无需破坏结构即可实现:
class Test {
constructor(args) {
Object.assign(this, args);
}
}
但我不知道如何简化:
class Test {
constructor({a=1, b=2, c=3}={}) {
this.a = a;
this.b = b;
this.c = c;
}
}
let test = new Test();
// test.a = 1
// test.b = 2 etc.
您可以使用对象创建的速记形式执行此操作:
class Test {
constructor({a=1, b=2, c=3}={}) {
Object.assign(this, {a, b, c});
}
}
例如:
类测试{
构造函数({a=1,b=2,c=3}={}){
赋值(这个,{a,b,c});
}
}
常数t1=新测试();
log(“t1:”,t1.a,t1.b,t1.c);
常数t2=新测试({b:42});
控制台日志(“t2:”,t2.a,t2.b,t2.c)
那么你想让你的调用者用一个对象调用这个函数吗?虽然我在下面为你发布了一个选项,但是我可以说,this.a=a代码>表单很好而且清晰,易于阅读,易于调试…我明白了。但是当有很多参数时,可能会有点不方便。很好!无法使用等价的参数访问对象?@hhh:不处理默认值,否。传入的对象确实可用作参数[0]
,但以其原始形式,并且只有在传入时才可用。确定!谢谢你,这就是我提问的目的@hhh:我刚刚为您更新了一个备选方案,我想您可能会更喜欢。但不使用解构。