假设我在Javascript(NodeJS)中有两个场景:
情景1:
var obj = {};
obj.getAll = function(..) {...};
obj.getOne = function(..){...};
module.exports = obj;
我在调用此模块的代码中使用obj
。
VS的内容:
情景2:
var constructor = function(){};
constructor.prototype.findAll = function(..){...};
constructor.prototype.findOne = function(..){...};
module.exports = constructor;
在调用此模块的代码中,我根据需要从constructor
创建一个对象并使用它。
场景2是否比场景1有任何优势?
答案 0 :(得分:1)
就内存使用或性能而言,答案是“它可以忽略不计”。由于您只是创建一个对象,无论您需要多少次模块,您总是会获得相同的实例(模块缓存的b / c)。
之后,它只是归结为你想要的模块接口。
我个人认为这种情况下的原型继承模式似乎有点奇怪,并没有真正看到任何好处。