我可以用Node中的"静态方法"来扩充对象,函数,日期等吗?

Dom*_*nic 5 javascript static-methods node.js

如果我创建一个包含的Node.js模块"augs"

Object.foo = "bar";
Run Code Online (Sandbox Code Playgroud)

然后输入REPL

require("./augs");
typeof Object.foo
Run Code Online (Sandbox Code Playgroud)

我回来了'undefined'.

我们的代码显著量在我们的Web应用程序,它依赖于加入到方便的方法Object,Function,Date,等我们想分享的前台和后台之间的一些代码,但它似乎是节点重置这些构造函数,或以某种方式否则会阻止给定模块中的更改泄漏到其他模块中.虽然这很聪明,我很欣赏保护程度,有没有办法说"我知道我在做什么;请让我加强Object"?

Way*_*ett 4

假设augs.js包含以下内容:

exports.augment = function(o) {
    o.foo = "bar";
}
Run Code Online (Sandbox Code Playgroud)

Object像这样增强:

> var aug = require("./augs.js");
> aug.augment(Object);
> typeof Object.foo
'string'
Run Code Online (Sandbox Code Playgroud)

注意:假设您还导出以下函数:

exports.getObject = function () {
    return Object;
}
Run Code Online (Sandbox Code Playgroud)

然后:

> var aug = require("./augs.js")
> aug.getObject() == Object
false
Run Code Online (Sandbox Code Playgroud)