变量词典内容

时间:2013-02-08 17:14:16

标签: javascript node.js roku

我不确定这是否可能,或者如果我采取了错误的方法,我已经尝试过搜索,但我不确定这些条款。

我想将一个变量传递给控制器​​dict,所以不是使用'PLAY',而是在查找中我可以做类似控制器的事情('OPTION','PLAY')

var ip = '192.168.1.5'
var Keys = {
            HOME:          '/keypress/Home',
            REV:           '/keypress/Rev',
            FWD:           '/keypress/Fwd',
            PLAY:          '/keypress/Play',
            SELECT:        '/keypress/Select',
            LEFT:          '/keypress/Left',
            RIGHT:         '/keypress/Right',
            DOWN:          '/keypress/Down',
            UP:            '/keypress/Up',
            BACK:          '/keypress/Back',
            INSTANTREPLAY: '/keypress/InstantReplay',
            INFO:          '/keypress/Info',
            BACKSPACE:     '/keypress/Backspace',
            SEARCH:        '/keypress/Search',
            ENTER:         '/keypress/Enter',
            A:             '/keypress/Lit_a'
     }

来自:

var controller = {
                  PLAY:{
                        hostname: ip,
                        port: 8060,
                        path: Keys['PLAY'],
                        method: 'POST'
                        }
                  }

到此:

var controller = {
                  OPTION:{
                        hostname: ip,
                        port: 8060,
                        path: Keys[Key],
                        method: 'POST'
                        }
                  }

我正在努力避免以下

var controller = {
                  PLAY:{
                        hostname: ip,
                        port: 8060,
                        path: Keys['PLAY'],
                        method: 'POST'
                        }
                  FWD :{
                        hostname: ip,
                        port: 8060,
                        path: Keys['FWD'],
                        method: 'POST'
                        }
                  REV :{
                        hostname: ip,
                        port: 8060,
                        path: Keys['REV'],
                        method: 'POST'
                        }
                  ...

                  }

1 个答案:

答案 0 :(得分:2)

你想到这样的事情:

controller = {
       OPTION : function(key){
                    return {
                    hostname: ip,
                    port: 8060,
                    path: Keys[key],
                    method: 'POST'
                   } 
                   }
              }

那么你可以通过controller.OPTION(“PLAY”)获得它。它本质上是创建了刚刚耦合到控制器对象中的getOption()方法epascerallo。