2014-10-07 69 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