将jquery扩展结果分配给此

时间:2017-05-31 08:35:26

标签: javascript jquery

我正在做以下(示例):

function NameConfig(cfg) {
    var config = $.extend({
        name: 'John',
        lastName: 'Doe'
    }, cfg);
}

现在将此配置分配给“this”我执行以下操作:

for (var key in config)
    this[key] = config[key];

我能以更好的方式做到吗?

1 个答案:

答案 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(/*...*/)