繁体   English   中英

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

[英]How to set a lot a class properties from an object with the same property names?

我正在使用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中是否可能发生这种行为吗?

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

检查this具有属性,然后从指定foo

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

或者更好的办法是循环中的所有键this和你并不需要if语句。

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

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];
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM