Javascript 在node.js中的何处更改对象原型?
我想在node.js应用程序中添加或覆盖一些对象、函数和数组的标准方法(如中建议的方法)。我应该如何在一个模块中完成所有的“补丁”,以使其影响所有其他模块Javascript 在node.js中的何处更改对象原型?,javascript,node.js,module,prototype,Javascript,Node.js,Module,Prototype,我想在node.js应用程序中添加或覆盖一些对象、函数和数组的标准方法(如中建议的方法)。我应该如何在一个模块中完成所有的“补丁”,以使其影响所有其他模块 如果我在一个只需require'd的模块中执行它,那就足够了吗?还是因为这两个模块具有不同的全局名称空间,所以它们具有不同的对象,所以无法工作?。。。或者我应该在require之后运行一些初始化功能,使所有这些“补丁”也能在这个模块中工作吗?每个加载的文件共享相同的原始对象,如对象、数组等,除非在不同的vm上下文中运行,因此在初始化过程中只需
如果我在一个只需
require
'd的模块中执行它,那就足够了吗?还是因为这两个模块具有不同的全局名称空间,所以它们具有不同的对象,所以无法工作?。。。或者我应该在require
之后运行一些初始化功能,使所有这些“补丁”也能在这个模块中工作吗?每个加载的文件共享相同的原始对象,如对象、数组等,除非在不同的vm上下文中运行,因此在初始化过程中只需要一次文件,就会在任何地方进行更改
//require the util.js file
require('./util.js');
var a = [];
a.doSomething();
在“util.js”文件中:
你的意思是说,只在我的主模块中要求这个模块有一次“补丁”就足够了,而我不需要在每个模块中要求它,我想让Object&co“补丁”?是的,只需要一次就足够了。节点中的所有模块共享相同的全局范围。它们具有不同的模块作用域,但具有相同的全局作用域。因此,它们具有相同的
对象
,函数
,数组
,等等。它适用于Function.prototype和Array.prototype,但当我尝试使用Object.prototype执行此操作时,它抛出TypeError:TypeError:属性描述必须是一个对象:在Function处未定义。在Object处定义属性(本机)。(/opt/nginx/html/dev.stockscompare/node_modules/express/lib/express.js:53:10)
//in your util.js file you don't have to write a module, just write your code...
Array.prototype.doSomething = function(){console.log("doSomething")};