代码之家  ›  专栏  ›  技术社区  ›  Hemadri Dasari

node.js:导出普通函数还是箭头函数?

  •  0
  • Hemadri Dasari  · 技术社区  · 6 年前

    导出正常函数

    module.exports = function(id) {
       console.log(id);
    };
    

    导出箭头函数

    const test = id => {
      console.log(id);
    }
    module.exports = test;
    

    下面是我心中的几个问题。

    1. 如果普通函数优于箭头函数,那么为什么我 我不建议使用箭头功能。

    2. 如果箭头功能是建议超过正常功能,那么为什么我不建议使用正常功能。

    如何理解推荐的方法,尤其是在导出函数的场景中?

    1 回复  |  直到 6 年前
        1
  •  7
  •   Estus Flask    6 年前

    这两个片段不完全相同。第一个代码段生成匿名函数,第二个代码段生成命名函数, require('...').name === 'test'

    一个更合适的比较是

    module.exports = function test(id) {
       console.log(id);
    };
    

    const test = id => {
      console.log(id);
    }
    module.exports = test;
    

    this 上下文)。

    匿名箭头函数需要较少的字符来输入,但当需要通过临时路径为函数命名时,这种优势就消失了 test 变量。它们还可能导致较小的内存占用,尽管这个问题可以忽略,因为差异可以忽略不计。

    定义 如果传送到ES5:

    const test = () => {} 
    

    var test = function test() {}
    

    虽然可能是:

    function test() {}
    


    热释光;DR:如果函数需要有一个用于调试或其他目的的名称,那么使用:

    module.exports=功能测试(id){
    控制台日志(id);
    };
    

    如果函数不需要名称,则为:

    module.exports = id => {
      console.log(id);
    };