在开发JavaScript库时是否应该使用命名函数?

时间:2015-02-05 20:22:11

标签: javascript debugging coding-style introspection code-readability

例如:

module.exports = {
  myLibraryFunction: function myLibraryFunction() {
    ...
  }
}

缺点是显而易见的。它不是DRY,这意味着如果您不小心,它很容易变得不同步。它还使您的代码更加冗长。

那么有什么优势呢?权衡是否值得?

1 个答案:

答案 0 :(得分:1)

我在编写JS库时使用这种方法。最大的优点是像Chrome调试器这样的工具将具有您的函数的确定名称,而不是“匿名”或由基于包含该函数的变量名称的函数路径组成的某个名称。但是,如果您在调试时不关心方法名称,那么它实际上归结为品味问题。如果你要缩小生成的JS代码,那么这样的命名元素无论如何都会被删除。

就这种方法的DRY而言,请考虑重复的名称紧挨着彼此。快速复制&粘贴就是让它们保持同步所需的一切。如果JS包含一个功能,可以根据在创建时分配给它的变量(或者至少是动态重新赋值函数的能力)来命名函数,那就太好了。然而,遗憾的是,这是JS允许我们命名这些匿名函数的唯一方法。