在node.js中更改对象原型的位置?

时间:2013-01-15 00:21:32

标签: javascript node.js module prototype

我想在node.js应用程序中添加或覆盖Object,Function和Array的一些标准方法(例如,如this answer中所建议的那样)。我应该如何在一个模块中执行所有“补丁”,以便影响我的所有其他模块?

如果我在仅仅require'的模块中执行此操作是否足够,或者它将无法工作,因为这两个模块具有不同的全局命名空间,因此它们具有不同的对象?...或者我应该在require之后运行一些初始化函数,使所有这些“补丁”也在这个模块中运行?

2 个答案:

答案 0 :(得分:11)

//require the util.js file 
require('./util.js');

var a = [];
a.doSomething();

在“util.js”文件中:

//in your util.js file you don't have to write a module, just write your code...
Array.prototype.doSomething = function(){console.log("doSomething")};

答案 1 :(得分:5)

每个加载的文件都共享相同的原始对象,如Object,Array等,除非在不同的vm Context中运行,因此在初始化时需要一次文件将在任何地方进行更改。