调用多个转换方法的更整洁的方法是什么?

时间:2019-08-14 10:19:20

标签: javascript method-chaining

我需要在一个变量上调用多种转换方法。有哪些干净的方法可以在JavaScript中做到这一点?它是否过度设计以创建类,以便我可以进行方法链接?

以下是我要整理的示例:

let value = 'foo';

value = transformValueFn1(value);
value = transformValueFn2(value);
value = replaceCertainChars(value);
value = encodeAsHtml(value);
// etc 

return value

1 个答案:

答案 0 :(得分:1)

在变压器阵列上使用reduce

let value = 'foo';

const newValue = [
  transformValueFn1,
  transformValueFn2,
  replaceCertainChars,
  encodeAsHtml
].reduce((val, fn) => fn(val), value)


function transformValueFn1(val) {
  console.log('transformValueFn1', val);
  return val;
}

function transformValueFn2(val) {
  console.log('transformValueFn2', val)
  return val;
}

function replaceCertainChars(val) {
  console.log('replaceCertainChars', val)
  return val;
}

function encodeAsHtml(val) {
  console.log('encodeAsHtml', val)
  return val;
}

  

如果您这样做不止一次或两次,那么一个类将是最有意义的IMO,尽管您也可以使用函数数组并减少– CertainPerformance