0

我定义了一个js 对象,它的名称-值对是函数表达式,函数定义或多或少相同。对象的键名与从外部导入的模块的功能相匹配。

const myModule = require('some_module');    //some module imported from outside

const myObj = {};

myObj.abc = (param1, param2, param3) => {
  myModule.abc(param1, param2, param3);
  // some algorithm (say algo)
}

myObj.xyz= (param1, param2, param3) => {
  myModule.xyz(param1, param2, param3);
  // same algorithm (algo)
}

myObj.pqr= (param1, param2, param3) => {
  myModule.pqr(param1, param2, param3);
  // same algorithm (algo)
}

//All the three names (abc, xyz, pqr) have nearly same function definitions.

我的问题是;有没有更好的方法来减少代码行,因为代码似乎是多余的?

4

1 回答 1

1

我会迭代一组方法名称而不是定义函数:

const methods = ['abc', 'xyz', 'pqr'];
for (const key of methods) {
  myObj[key] = (param1, param2, param3) => {
    myModule[key](param1, param2, param3);
    // some algorithm (say algo)
  };
}
于 2020-09-28T03:42:37.400 回答