首页  >  问答  >  正文

javascript - 函数新增一个功能是选择在原有函数上扩展还是新建一个函数~

如果在原有函数上扩展的话 就得加参数加 if 这造成使用正常功能的话多了一些判断 不开心

新建函数的话又声明了一块内存给他 多了内存消耗~

ringa_leeringa_lee2734 天前503

全部回复(2)我来回复

  • 高洛峰

    高洛峰2017-05-19 10:25:44

    这个问题并没有一个最佳答案, 终究要你从实际项目出发,
    而且你应该从 扩展性/维护性/可读性 之类的角度来思考和做选择, 这些会比较重要.
    至于内存消耗之类的你就属于瞎操心了, 哪怕目前最庞大的js应用, 也不至于对一个函数的内存占用这么锱铢必究...

    嘛, 我还是补充一下吧, 如果你非要要求高性能, 我想到了一种方式:

    function foo( flag ) {
       foo = !!flag? function() {
           return true;
       }: function () {
           return false;
       }
       return foo();
    }
    foo(true);
    console.log( foo ); // 你可以看到最终的 foo 不再是一开始定义的样子

    直到第一次使用的时候才确定函数的作用, 并且在确定以后去掉所有无用逻辑.
    懒加载+内存占用最小.
    理论上, 多次调用应该是性能最优的.

    回复
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:25:44

    函数式编程与命令式编程

    回复
    0
  • 取消回复