我看到有些人使用不同的方法创建一个类,但我真的不知道使用内联,使用名称或没有函数名称的差异或优势。例如:
// 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();
任何人都可以解释或告诉我差异吗?我想使用函数名称会给出更多关于堆栈跟踪的信息吗?
由于
答案 0 :(得分:3)
差异很小。
#1和#2之间的区别在于myClass
(变量)可以在模块中的其他位置使用。
#2和#3之间的区别在于该函数有一个名称,因此:
(构造函数有时是递归的,你可以使用和不使用new
来调用它们,而且它们首先检查this
是MyClass
的实例,如果没有调用用new
)递归递归。