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

时间:2011-03-18 18:56:52

标签: object prototype module node.js extend

我刚刚开始在NodeJs,所以我不熟悉这是否是一个好习惯,抱歉:(

我有我的Object实现,它为我创建的所有对象添加合并方法,因此我可以合并到一个中的不同对象。

Object.prototype.merge = function(source){
    //...my code here
    return this;
}

所以我想知道如何将这个可用于我的Node应用程序中的所有模块?

我已阅读this excellent book我可以为此创建模块,然后以utils.merge(obj1, obj2)为例。

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

有没有办法实现这个目标?

提前致谢

1 个答案:

答案 0 :(得分:1)

只需将您的实现放在一个文件中,然后在您应用的主.js文件中的任何其他内容之前将其要求。

  • objectmerge.js;

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

  • main.js

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

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