我正在做以下(示例):
function NameConfig(cfg) {
var config = $.extend({
name: 'John',
lastName: 'Doe'
}, cfg);
}
现在将此配置分配给“this”我执行以下操作:
for (var key in config)
this[key] = config[key];
我能以更好的方式做到吗?
答案 0 :(得分:0)
我假设你在某个地方new NameConfig
(要设置this
)。
现在我认为jQuery的extend
方法完全符合您的要求。引用文档,它说:
将两个或多个对象的内容合并到第一个对象中。
所以你可以简单地做
function NameConfig(cfg) {
var config = $.extend(this, {
name: 'John',
lastName: 'Doe'
}, cfg);
}
它将按预期工作。
话虽如此,我不建议直接写入this
,因为您可以很容易地遇到一些命名空间问题。
也许只需在config
上添加this
属性就行了(当然,取决于您的用例)
this.config = $.extend(/*...*/)