2013-02-08 149 views
0

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

我想一个变量传递到控制器字典,因此而不是使用“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' 
         } 
        ... 

        } 
+0

究竟是什么问题? – epascarello 2013-02-08 17:16:38

+0

我不希望为每个关键词都写一本字典,I.E.控制器将拥有所有的密钥(由密钥引用),我会为每个密钥复制主机名,端口,方法(很多额外的代码可能有更短的版本,IE也更容易阅读) – onaclov2000 2013-02-08 17:25:02

+1

因此,制作一个方法'getOption(“PLAY”)'并返回带有新插入路径的对象。 – epascarello 2013-02-08 17:29:21

回答

2

当时是怎么想的是这样的:

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

,那么你可以用controller.OPTION( “PLAY”)得到它。它本质上是创建了一个getOption()方法epascerallo,并建议将它加入到控制器对象中。