如何增强node.js中的内置JavaScript类型?

如何增强node.js中的内置JavaScript类型?,javascript,node.js,Javascript,Node.js,我已经编写了以下代码片段来增强JavaScript中的所有对象,并希望将此方法用于我编写的所有JavaScript库。我应该如何在node.js中执行此操作 Object.prototype.copy = function() { var that = this, obj = {}; for (var key in that) { if (that.hasOwnProperty(key)) { obj[key] = tha

我已经编写了以下代码片段来增强JavaScript中的所有对象,并希望将此方法用于我编写的所有JavaScript库。我应该如何在node.js中执行此操作

Object.prototype.copy = function() {
    var that = this,
        obj = {};

    for (var key in that) {
        if (that.hasOwnProperty(key)) {
            obj[key] = that[key];
        }
    }

    return obj;
}

…删除:我错了…


正如Scott Gress和barry johnson在cimments中指出的那样,更改内置类型是一种非常糟糕的做法。

一般来说,在Javascript中向本机对象添加方法不是一种好的做法,因为它可能会导致与其他库的兼容性问题。关于这个话题有很好的讨论。此外,有很多优秀的库都有克隆对象的方法;想到这里。@ScottGress是100%正确的,这种事情最好避免。他还正确地指出,有一些库可以提供该函数,但我不喜欢为了得到10行代码而包含整个库。不过,在回答您的问题时,您不需要将函数分配给
Object.copy
,而是将其分配给
Object.prototype.copy
。但同样,你不应该。:-)@巴里·约翰逊谢谢你指出错误。我已经改正了。