我看到有两种基本方式可以编写Node模块。第一个设置要在module.exports上导出到其自己的属性的每个函数或变量:
module.exports.foo = function () {
...
}
第二个是创建一个具有要导出的属性的新对象,并将module.exports分配给文件末尾的那个:
var FooObject = {
foo: function () {
...
}
};
...
module.exports = FooObject;
我有时会看到的第三件事是将module.exports设置为具有您要导出的所有属性的对象,但是出于本讨论的目的,这等同于我提到的第一个方法:< / p>
module.exports = {
foo: function () {
...
}
}
我们是通过第二种方式(创建一个对象并将module.exports分配给它)来浪费内存吗?我一直认为,因为所有赋值都是引用,所以当你执行module.exports = {...}
时应该创建一个新对象,所以这两个对应是等价的。那不是这样吗?
答案 0 :(得分:1)
最后两个例子是等效的。唯一的区别是第二个是按名称设置对象,第三个是按对象文字设置。