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

前端之家收集整理的这篇文章主要介绍了javascript – 我可以用Node中的“静态方法”来扩充对象,函数,日期等吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

@H_404_5@Object.foo = "bar";

然后输入REPL

@H_404_5@require("./augs"); typeof Object.foo

我回来’未定义’.

我们的Web应用程序中有大量代码依赖于添加到Object,Function,Date等的便捷方法.我们尝试在前端和后端之间共享一些代码,但似乎Node重置了这些构造函数或以某种方式以其他方式阻止给定模块中的更改泄漏到其他模块中.虽然这很聪明,我很欣赏保护程度,有没有办法说“我知道我在做什么;请让我加强对象”?

最佳答案
假设augs.js包含以下内容

@H_404_5@exports.augment = function(o) { o.foo = "bar"; }

像这样的增强对象:

@H_404_5@> var aug = require("./augs.js"); > aug.augment(Object); > typeof Object.foo 'string'

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

@H_404_5@exports.getObject = function () { return Object; }

然后:

@H_404_5@> var aug = require("./augs.js") > aug.getObject() == Object false

猜你在找的JavaScript相关文章