向对象动态添加属性

Dynamically adding properties to an object

本文关键字:属性 添加 动态 对象      更新时间:2024-06-18

我有一个名为Object1的对象,它是第三方对象&我在里面投资房产。

Object1.shoot({
'prop1':prop_1,
'prop2':prop_2,
'prop3':prop_3
});

现在,我希望只有当prop_1具有某个值时,才能将键"prop1"作为属性添加到Object1中。否则我不想添加它,

最好的方法是什么?

您可以先检查每个属性中的循环。

var params = {
    'prop1':prop_1,
    'prop2':prop_2,
    'prop3':prop_3
};
for (var param in params) {
    if (typeof params[param] === 'undefined') {
        delete params[param];
    }
}
Object1.shoot(params);

如果定义了属性,则可以制作一个辅助函数来添加属性:

function addProp(target, name, value) {
  if(value != null) {
    target[name] = value
  }
}
var props = {}
addProp(props, 'prop1', prop_1)
addProp(props, 'prop2', prop_2)
addProp(props, 'prop3', prop_3)

上面执行的是null检查,而不是undefined检查。您可以根据需要进行更改(例如,您可能不想要空字符串、数字零或其他任何东西),但请首先检查:

  • 如何确定变量是否为';未定义';或者';null'