使用module.exports的三种不同方式之间的差异

南阮

我看到有些人使用不同的方式来创建类,但是我真的不知道使用内联,使用名称或不使用函数名称的区别或优势。例如:

// Style 1. myclass.js. Use module.exports on a var
var myClass = function MyClass() {
   return something;
};

module.exports = myClass;

// Style 2. myclass.js. inline module.exports
module.exports = function MyClass() {
  return something;
};

// Style 3. myclass.js. inline module.export without function name
module.exports = function () {
   return something;
};

用法:

var MyClass = require('myclass');
var classObj = new MyClass();

谁能解释或告诉我差异吗?我猜想与函数名一起使用会在堆栈跟踪中提供更多信息吗?

谢谢

尼赞(Nitzan)摇了摇

差异很小。

#1和#2之间的区别在于myClass(变量)可以在模块中的其他位置使用。

#2和#3之间的区别在于该函数具有名称,因此:

  1. 如果需要,使用递归会更容易(尽管在#3中并非不可能)
  2. 如您所说,您将获得更好看的堆栈跟踪。

(构造函数有时是递归的,有这样的惯用语:您可以同时使用和不使用来调用它们new,它们首先检查是否this是的实例,MyClass如果不使用,则使用递归地调用自身new)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用javascript函数的三种不同方式,但是我不知道它的优缺点。有人可以解释差异吗?

来自分类Dev

使用strsplit拆分变量的三种方式

来自分类Dev

使用sqlite获得三种不同的搜索结果

来自分类Dev

如何在三种语言的网站上以三种不同的语言使用Disqus评论?

来自分类Dev

在Java中比较字符串的三种不同方式

来自分类Dev

使用笔译取代标点符号,这三种方式有何区别?

来自分类Dev

这三种函数的返回方式之间是否存在性能差异(C ++)

来自分类Dev

使用 2 种不同方法时的 O(N) 差异很大

来自分类Dev

何时快速使用关键字“ as”的三种不同形式

来自分类Dev

如何使用xChart Java在折线图中绘制三种不同颜色的三条线

来自分类Dev

如何使用数组中png的名称以两种不同方式对数组进行排序

来自分类Dev

SwiftUI使用视图模型模式以两种不同方式打开视图

来自分类Dev

如何以三种不同的方式对齐弹性项目?

来自分类Dev

无法使用三种不同的浏览器从download.microsoft.com手动下载更新

来自分类Dev

以不同方式使用argparse参数

来自分类Dev

Java中实例化对象的不同方式之间的差异

来自分类Dev

Java中实例化对象的不同方式之间的差异

来自分类Dev

在Rails中使用devise时,如何添加将以两种不同方式使用该站点的两种不同类型的用户?

来自分类Dev

以三种不同的方式打开同一脚本会产生三种不同的结果。为什么?

来自分类Dev

使用 Json.Net 反序列化以两种不同方式序列化的值

来自分类Dev

使用PHP仅替换前三种情况

来自分类Dev

如何使用timeit对三种算法计时?

来自分类Dev

如果使用其他三种型号的护栏

来自分类Dev

使用python日志记录模块设置日志记录级别的2种不同方法之间的区别

来自分类Dev

在不同的子例程中使用变量的不同方式

来自分类Dev

如何在第三种方法中将两种不同方法返回的值相乘?

来自分类Dev

使用module.exports返回对象

来自分类Dev

使用module.exports返回对象

来自分类Dev

使用numpy模拟包含三种成分的1000种混合气体

Related 相关文章

  1. 1

    使用javascript函数的三种不同方式,但是我不知道它的优缺点。有人可以解释差异吗?

  2. 2

    使用strsplit拆分变量的三种方式

  3. 3

    使用sqlite获得三种不同的搜索结果

  4. 4

    如何在三种语言的网站上以三种不同的语言使用Disqus评论?

  5. 5

    在Java中比较字符串的三种不同方式

  6. 6

    使用笔译取代标点符号,这三种方式有何区别?

  7. 7

    这三种函数的返回方式之间是否存在性能差异(C ++)

  8. 8

    使用 2 种不同方法时的 O(N) 差异很大

  9. 9

    何时快速使用关键字“ as”的三种不同形式

  10. 10

    如何使用xChart Java在折线图中绘制三种不同颜色的三条线

  11. 11

    如何使用数组中png的名称以两种不同方式对数组进行排序

  12. 12

    SwiftUI使用视图模型模式以两种不同方式打开视图

  13. 13

    如何以三种不同的方式对齐弹性项目?

  14. 14

    无法使用三种不同的浏览器从download.microsoft.com手动下载更新

  15. 15

    以不同方式使用argparse参数

  16. 16

    Java中实例化对象的不同方式之间的差异

  17. 17

    Java中实例化对象的不同方式之间的差异

  18. 18

    在Rails中使用devise时,如何添加将以两种不同方式使用该站点的两种不同类型的用户?

  19. 19

    以三种不同的方式打开同一脚本会产生三种不同的结果。为什么?

  20. 20

    使用 Json.Net 反序列化以两种不同方式序列化的值

  21. 21

    使用PHP仅替换前三种情况

  22. 22

    如何使用timeit对三种算法计时?

  23. 23

    如果使用其他三种型号的护栏

  24. 24

    使用python日志记录模块设置日志记录级别的2种不同方法之间的区别

  25. 25

    在不同的子例程中使用变量的不同方式

  26. 26

    如何在第三种方法中将两种不同方法返回的值相乘?

  27. 27

    使用module.exports返回对象

  28. 28

    使用module.exports返回对象

  29. 29

    使用numpy模拟包含三种成分的1000种混合气体

热门标签

归档