Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中的何处更改对象原型?_Javascript_Node.js_Module_Prototype - Fatal编程技术网

Javascript 在node.js中的何处更改对象原型?

Javascript 在node.js中的何处更改对象原型?,javascript,node.js,module,prototype,Javascript,Node.js,Module,Prototype,我想在node.js应用程序中添加或覆盖一些对象、函数和数组的标准方法(如中建议的方法)。我应该如何在一个模块中完成所有的“补丁”,以使其影响所有其他模块 如果我在一个只需require'd的模块中执行它,那就足够了吗?还是因为这两个模块具有不同的全局名称空间,所以它们具有不同的对象,所以无法工作?。。。或者我应该在require之后运行一些初始化功能,使所有这些“补丁”也能在这个模块中工作吗?每个加载的文件共享相同的原始对象,如对象、数组等,除非在不同的vm上下文中运行,因此在初始化过程中只需

我想在node.js应用程序中添加或覆盖一些对象、函数和数组的标准方法(如中建议的方法)。我应该如何在一个模块中完成所有的“补丁”,以使其影响所有其他模块


如果我在一个只需
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")};