在这种情况下使用Javascript的原型inheritance有什么好处吗?
假设我在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
创build一个对象并使用它。
scheme2与scheme1相比有什么优势?
在内存使用或性能方面,答案是“可以忽略”。 既然你只是创build一个单一的对象,无论你需要多less次模块,你总是会得到相同的实例(模块caching的B / C)。
之后,它只是归结为你想要的模块接口。
就我个人而言,我认为这种情况下的原型inheritance模式看起来有点奇怪,并没有真正看到任何好处。