我看到有些人使用不同的方式来创建类,但是我真的不知道使用内联,使用名称或不使用函数名称的区别或优势。例如:
// 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();
谁能解释或告诉我差异吗?我猜想与函数名一起使用会在堆栈跟踪中提供更多信息吗?
谢谢
差异很小。
#1和#2之间的区别在于myClass
(变量)可以在模块中的其他位置使用。
#2和#3之间的区别在于该函数具有名称,因此:
(构造函数有时是递归的,有这样的惯用语:您可以同时使用和不使用来调用它们new
,它们首先检查是否this
是的实例,MyClass
如果不使用,则使用递归地调用自身new
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句