什么时候适合使用函数,什么时候不适合?为什么?

时间:2018-08-28 15:14:13

标签: javascript functional-programming currying

我怎么写一个javascript函数,知道它是否需要被处理?

1 个答案:

答案 0 :(得分:1)

至少在一种情况下,我发现在性能方面,使用函数功能可以帮助您编写更好的代码。

假设我有一个模板渲染器。

const templateRenderer = (template, ...args) => {
  const preProcessedTemplate = preProcess(template)
  return preProcessedTemplate.render(...args)
}

const template = new Template(.......)
const renderedContent1 = templateRender(template, 1)
const renderedContent2 = templateRender(template, 2)
const renderedContent3 = templateRender(template, 3)

假设preProcess是昂贵的函数,并且preProcessedTemplate.render运行很快。在前面的代码中,preProcess被调用了3次。

第一步不依赖于args。因此,此代码将给出相同的结果:

const makeTemplateRenderer = template => {
  const preProcessedTemplate = preProcess(template)
  return (...args) => preProcessedTemplate.render(...args)
}

const template = new Template(.......)
const templateRenderer = makeTemplateRenderer(template)
const renderedContent1 = templateRender(1)
const renderedContent2 = templateRender(2)
const renderedContent3 = templateRender(3)

在这种情况下,preProcess仅被调用一次。整理功能(并在两者之间执行中间步骤)可提高性能。