如何从具有相同属性名称的对象中设置很多类属性?

时间:2015-06-10 15:54:08

标签: javascript class properties

我在JS工作,我有以下具有很多属性的对象:

var foo = {
    prop1: 123,
    prop2: 456,
    prop3: 789,
    ...
    propX: 321
}

我想设置一个具有完全相同属性的类。

我可以这样做:

this.prop1 = foo.prop1
this.prop2 = foo.prop2
this.prop2 = foo.prop2
...
this.propX = foo.propX

但我正在寻找类似的东西:

for(var property in foo) {
    this.[property] = foo[property]
}

你知道在JS中是否有可能获得这种行为?

我想用一个循环设置我的类属性。

2 个答案:

答案 0 :(得分:4)

检查this是否具有属性,然后从foo分配

for(var property in foo) {
    if(this.hasOwnProperty(property)) {  
        this[property] = foo[property];
    }
}

或更好的方法是循环this中的所有密钥,而您不需要if语句。

答案 1 :(得分:0)

遍历源对象属性键并将值复制到目标对象,如下所示:

var foo = {
    prop1: 123,
    prop2: 456,
    prop3: 789,
    ...
    propX: 321
}

// Copy properties across
var target = {};
var keys = Object.keys(foo);
keys.forEach(function(key){
    target[key] = foo[key];
});