【问题标题】:Variable Dictionary Contents变量字典内容
【发布时间】:2013-02-09 01:42:13
【问题描述】:

我不确定这是否可行,或者我是否采用了错误的方法,我尝试过搜索,但我不确定这些条款。

我想将一个变量传递给控制器​​字典,因此在查找时我可以执行控制器('OPTION','PLAY')之类的操作,而不是使用“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'
                        }
                  ...

                  }

【问题讨论】:

  • 你的问题到底是什么?
  • 我不想为每个键写字典查找,即控制器将拥有所有键(由键引用),我将为每个键复制主机名、端口、方法,(许多额外代码用于可能具有较短版本的东西,即更易于阅读)
  • 所以创建一个方法getOption("PLAY") 并返回带有新插入路径的对象。
  • 好电话(我觉得不采用这种方法有点愚蠢),但是像我建议的那样用这种语言可能吗?

标签: javascript node.js roku


【解决方案1】:

你有没有想过这样的事情:

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

然后您可以使用 controller.OPTION("PLAY") 获得它。它本质上是创建 getOption() 方法 epascerallo 建议只是耦合到控制器对象中。

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多