我有以下(伪代码示例)类:
class Whatever {
constructor(param1, param2, ... , param15) {
this.someLongInitialTask1(param1, param2, ... , param15);
this.someLongInitialTask2(param1, param2, ... , param15);
// some other operations
}
someLongInitialTask1(param1, param2, ..., param15) {
//here some operation to be performed only at inizialization
}
someLongInitialTask2(param1, param2, ..., param15) {
//here some operation to be performed only at inizialization
}
}
我希望能够在我的代码中指定参数/参数列表param1, param2, ..., param15
仅在1个地方,而不是每次我需要它们时重复它们。原因是为了编写更健壮和可维护的代码,并避免忘记在各种多个调用中更改参数。
这怎么可能呢?
我不希望这些参数成为类的某个字段/属性,因为它们只在类初始化时有用,并且不需要"记忆"。它们在对象内(不需要将它们分配给对象的字段)。
使用扩展运算符...
语法:
class Whatever {
constructor() {
this.someLongInitialTask(...arguments);
}
这些天我倾向于避免有很多参数(更喜欢对象解构参数),但如果你只是想传递参数,你可以使用扩展语法。
class Whatever {
constructor(...params) {
this.someLongInitialTask(...params);
}
someLongInitialTask(...params) {
const [param1] = params;
console.log(param1);
this.someLongInitialTask2(...params);
}
someLongInitialTask2(...params) {
const [param1, param2, param3] = params;
console.log(param1, param2, param3);
}
}
new Whatever(1,2,3);