在我的所有节点应用程序上扩展Object.prototype.myNewMethod

在我的所有节点应用程序上扩展Object.prototype.myNewMethod,object,prototype,module,node.js,extend,Object,Prototype,Module,Node.js,Extend,我刚开始学习NodeJs,所以我不知道这是否是一个好的练习,对不起:( 我有一个对象实现,它向我创建的所有对象添加一个合并方法,这样我就可以在一个对象中合并到不同的对象 Object.prototype.merge = function(source){ //...my code here return this; } 所以我想知道我怎样才能使我的节点应用程序中的所有模块都可以使用它 我已经读到,我可以为此创建一个模块,然后调用utils.merge(obj1,obj2) 但即

我刚开始学习NodeJs,所以我不知道这是否是一个好的练习,对不起:(

我有一个对象实现,它向我创建的所有对象添加一个合并方法,这样我就可以在一个对象中合并到不同的对象

Object.prototype.merge = function(source){
    //...my code here
    return this;
}
所以我想知道我怎样才能使我的节点应用程序中的所有模块都可以使用它

我已经读到,我可以为此创建一个模块,然后调用
utils.merge(obj1,obj2)

但即便如此,我还是宁愿继续使用对象的实现,只需调用
obj1.merge(obj2)

有没有办法做到这一点


提前感谢

只需将您的实现放在一个文件中,并在应用程序的主
.js
文件中要求它

  • objectmerge.js

    Object.prototype.merge=function(){/body/}

  • main.js

    require('objectmerge.js'); //继续你的代码


这样,您的
objectmerge.js
脚本将首先运行,并在执行任何其他操作之前修改全局
对象
。但是,我建议您不要这样做,因为这不是常见的做法(并且它允许您使用
foo.merge(bar)
在一个没有明确定义
Object.prototype.merge

的文件中,只需将您的实现放在一个文件中,并在应用程序的主
.js
文件中的任何内容之前要求它

  • objectmerge.js

    Object.prototype.merge=function(){/body/}

  • main.js

    require('objectmerge.js'); //继续你的代码

这样,您的
objectmerge.js
脚本将首先运行,并在执行任何其他操作之前修改全局
对象
。但是,我建议您不要这样做,因为这不是常见做法(并且它允许您在未显式定义
Object.prototype.merge
的文件中使用
foo.merge(bar)