javascript在扩展对象时自动添加属性

时间:2012-06-13 08:35:30

标签: javascript object dynamic properties

使用JavaScript时,我遇到过一种情况,我不确定我是否有可能实现的目标:

考虑以下对象:

var data = {};

是否可以通过以下列方式扩展“数据”来修改“数据”

data.entry_1 = {
    'prop_1': 'set_1',
    'prop_2': 'set_2'
};

新属性会自动附加到新对象,也就是说

data.entry_1 = {
    'prop_1': 'set_1',
    'prop_2': 'set_2',
    id: 1 // automatically created property
};

是否有可能在不使用“外部”方法的情况下完成上述操作,例如:没有data.newEntry(对象)?

1 个答案:

答案 0 :(得分:1)

var data = {
   set entry_1 (val) {
       for(var i in val) { this[i] = val[i] };
       this["id"] = 1;
   }
}

在IE9 +和所有其他现代浏览器中受支持。