我怎么写一个javascript函数,知道它是否需要被处理?
答案 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仅被调用一次。整理功能(并在两者之间执行中间步骤)可提高性能。