动态设置和获取对象

时间:2014-10-07 18:20:57

标签: angularjs oop dynamic

如何在AdminActivtyService对象中动态指定值?我有一个setEmbeddedConfigObj来将numActivities更改为false或true。但是,如果我想设置或获取socialMediaSelections,我将如何指定设置socialMediaSelections和NOT numActivities。

我也不希望我的embedConfigObj中的每个值都有过多的不同set和get函数。

因此,有没有办法像#34; 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;
 };

1 个答案:

答案 0 :(得分: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")将返回numActivities的值,而AdminActivityService.setEmbeddedConfigObj("numActivities", true)会将numActivities设置为true