我需要在一个变量上调用多种转换方法。有哪些干净的方法可以在JavaScript中做到这一点?它是否过度设计以创建类,以便我可以进行方法链接?
以下是我要整理的示例:
let value = 'foo';
value = transformValueFn1(value);
value = transformValueFn2(value);
value = replaceCertainChars(value);
value = encodeAsHtml(value);
// etc
return value
答案 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