隔离node.js中模块之间的全局更改

时间:2013-04-11 03:25:01

标签: node.js global-variables

似乎我修改了Object.prototype,它似乎在所有模块中都可见。如果可以隔离这些全局更改以保护模块不受 要求的模块影响,那将是非常好的。

这有可能吗?

1 个答案:

答案 0 :(得分:1)

Object.prototype是一个对象,并且只有一个对象,因此在一个地方修改它会影响对该对象的所有引用(就像任何对象一样)。这通常被认为是一个好处,因为它使colors之类的模块成为可能。对全局原型所做的更改不应该是保护模块,因为这些更改应该只是扩展。如果您或其他人的模块正在修改内置方法/属性,那么这可能是最糟糕的做法。

虽然您没有给出示例,但我认为您可能想要创建本地函数(未附加到原型),或者使用inheritance来解决特定对象的问题。