gpt4 book ai didi

javascript - ECMAScript 6 中更短的类初始化

转载 作者:可可西里 更新时间:2023-11-01 02:21:28 26 4
gpt4 key购买 nike

每次我创建一些类时,我都需要执行相同的无聊过程:

class Something {
constructor(param1, param2, param3, ...) {
this.param1 = param1;
this.param2 = param2;
this.param3 = param3;
...
}
}

有什么办法可以让它更优雅、更短吗?我使用 Babel,因此允许使用一些 ES7 实验性功能。也许装饰器可以提供帮助?

最佳答案

您可以使用 Object.assign :

class Something {
constructor(param1, param2, param3) {
Object.assign(this, {param1, param2, param3});
}
}

这是一项 ES2015(又名 ES6)功能,可将一个或多个源对象的自己的可枚举属性分配给目标对象。

当然,您必须将 arg 名称写两次,但至少它要短得多,如果您将此设置为您的惯用语,当您在实例上有您想要的参数和其他您不需要的参数时,它会很好地处理它t,例如:

class Something {
constructor(param1, param2, param3) {
Object.assign(this, {param1, param3});
// ...do something with param2, since we're not keeping it as a property...
}
}

示例:( live copy on Babel's REPL ):

class Something {
constructor(param1, param2, param3) {
Object.assign(this, {param1, param2, param3});
}
}
let s = new Something('a', 'b', 'c');
console.log(s.param1);
console.log(s.param2);
console.log(s.param3);

输出:

abc

关于javascript - ECMAScript 6 中更短的类初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33328202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com