看起来如果我修改,比如说,Object.prototype,它似乎在所有模块中都是可见的。如果可以隔离这些全局更改,从而保护模块免受不需要的模块的影响,那就太好了。
这有可能吗?
最佳答案
Object.prototype
是一个对象,并且只有一个对象,因此在一处修改它会影响对该对象的所有引用(就像任何对象一样)。这通常被认为是一个好处,因为它使得模块像 colors可能的。没有必要保护模块免受对全局原型(prototype)所做的更改,因为这些更改应该只是扩展。如果您或其他人的模块正在修改内置方法/属性,那么这首先可能是不好的做法。
虽然您没有给出示例,但我认为您可能想要创建本地函数(未附加到原型(prototype)),或者考虑使用 inheritance解决您对特定对象的担忧。
关于node.js - 隔离 Node.js 中模块之间的全局更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15940207/