簡體   English   中英

動態地向對象添加屬性

[英]Dynamically adding properties to an object

我有一個名為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檢查。 您可以根據需要進行更改(例如,您可能不希望使用空字符串,數字零或其他任何東西),但請先進行以下檢查:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM