是否将module.exports分配给单独的对象废弃内存

时间:2014-10-03 20:22:50

标签: node.js

我看到有两种基本方式可以编写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 = {...}时应该创建一个新对象,所以这两个对应是等价的。那不是这样吗?

1 个答案:

答案 0 :(得分:1)

最后两个例子是等效的。唯一的区别是第二个是按名称设置对象,第三个是按对象文字设置。