Javascript 如何以类似于通用JS的方式扩展对象?

Javascript 如何以类似于通用JS的方式扩展对象?,javascript,node.js,Javascript,Node.js,我正在尝试确保我的所有代码都具有此扩展方法: Object.prototype.extend = function(obj) { for(i in obj) this[i] = obj[i]; }; 如果我想把它提供给我的图书馆,我可以在我的入口点要求它吗?这似乎不对,因为我没有出口任何东西。编辑对象并应用这些更改的最佳方法是什么?修改对象。通常不建议使用原型,尤其是在使用模块时。它将引入其他模块不知道的更改,并可能破坏这些更改。相反,您应该考虑编写扩展对象<

我正在尝试确保我的所有代码都具有此扩展方法:

Object.prototype.extend = function(obj) {
       for(i in obj)
          this[i] = obj[i];
};

如果我想把它提供给我的图书馆,我可以在我的入口点要求它吗?这似乎不对,因为我没有出口任何东西。编辑对象并应用这些更改的最佳方法是什么?

修改
对象。通常不建议使用原型,尤其是在使用模块时。它将引入其他模块不知道的更改,并可能破坏这些更改。相反,您应该考虑编写<代码>扩展对象< /代码>模块,该模块导出该函数。只需使用该模块并使用导出的功能:

var extendObject = require('extendObject');

extendObject(obj1, obj2);

但是如果我修改了一个模块中的Objecy.prototype,而其他模块也需要修改,那么它们也会得到新的原型吗?问题是它们不需要您的模块。如果任何模块在任何时候需要影响Object.prototype的模块,所有模块都将获得修改后的Object.prototype-即使是那些可能不知道更改的模块(例如第三方模块)。