2014-10-07 114 views
0

如何在我的AdminActivtyService對象中動態指定值?我有一個setEmbeddedConfigObj將numActivities更改爲false或true。但是,如果我想設置或獲取socialMediaSelections,我將如何指定設置socialMediaSelections而不是numActivities。動態設置和獲取對象

我也不想過度不同的設置,並獲得我的embedConfigObj中的每個值的函數。

因此,有沒有辦法像「this.embeddedConfigObj.obj = obj」。這將只允許傳入的函數參數的值被設置或獲取。

var AdminActivityService = { 
     "embeddedConfigObj" : { 

      "numActivities" : false, 
      "socialMediaSelections": false 
      // etc. 
     } 
}; 


AdminActivityService.setEmbeddedConfigObj = function(obj) { 

    this.embeddedConfigObj.numActivities = obj; 
}; 

AdminActivityService.getEmbeddedConfigObj = function() { 

    return this.embeddedConfigObj.numActivities; 
}; 

回答

0

您可以在關鍵的名稱傳遞以及價值,並有一個的getter/setter:

AdminActivityService.getEmbeddedConfigObj = function(key) { 
    if (this.embeddedConfigObj.hasOwnProperty(key)) 
     return this.embeddedConfigObj[key]; 
    else 
     return null; 
} 

AdminActivityService.setEmbeddedConfigObj = function(key, val) { 
    if (this.embeddedConfigObj.hasOwnProperty(key)) 
     this.embeddedConfigObj[key] = val; 
} 

然後簡單地把它叫做:AdminActivityService.getEmbeddedConfigObj("numActivities")將返回值numActivitiesAdminActivityService.setEmbeddedConfigObj("numActivities", true)將設置numActivitiestrue