[英]Node.js adding multiple properties to an object
我想知道是否有更好的方法来做到这一点:
module.exports.foo = "bar";
module.exports.bar = "baz";
module.exports.foobar = "foobaz";
现在,我听说过“with”(及其危险),但它在这里不起作用,因为它无法向对象添加新属性,它只能更改现有属性。 事实上,如果你尝试添加新的属性,你最终会破坏封闭的范围,这不是很好。
这样的事情会很好:
module.exports += {
foo: "bar",
bar: "baz",
foobar: "foobaz"
}
但这在连接它们之前将双方转换为字符串,这不是我想要的。
Node.JS 风格的 JavaScript 中是否存在这种语法糖? 也许“模块”上的一个函数可以一次添加很多属性?
你可以写一个简单的函数来遍历它们并将它们添加到module.exports或者你可以尝试node.extend它试图模仿jQuery的$.extend()
Object.assign(module.exports, {
foo: "bar",
bar: "baz",
foobar: "foobaz"
});
考虑使用_.extend
所以在你的例子中:
module.exports += {
foo: "bar",
bar: "baz",
foobar: "foobaz"
}
将会:
var _ = require('underscore');
_.extend(module.exports,
{
foo: "bar",
bar: "baz",
foobar: "foobaz"
}
);
或者,如果您不想要任何依赖项,请使用原始 javascript:
function myExtend(dest, obj) {
for (key in obj) {
var val = obj[key];
dest[key] = val;
}
}
myExtend(module.exports,
{
foo: "bar",
bar: "baz",
foobar: "foobaz"
}
);
如果您使用后一种方法,请确保检查边缘情况,我在这里没有!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.