2016-07-22 109 views
0

我正試圖使用​​存儲在變量中的鍵檢索對象內部的回調函數集。我正在使用節點v6.3.1。Javascript object not variable value with variable key

function ManageCommands() { 
    var scope = this; 
    scope.commands = {}; 

    return { 
     addCommand: function (command, callback) { 
      scope.commands[command] = callback; 
     }, 
     compileCommands: function() { 
      return Object.keys(scope.commands); 
     }, 
     runCommand: function (key) { 
      console.log('command', key); 
      console.log('commands', scope.commands); 
      console.log(scope.commands[key]); 
     } 
    }; 
} 

但是試圖訪問內部runCommand回調函數,當它返回undefined:

$ node server.js 
command test me 
commands { hello: [Function], 'test me': [Function] } 
undefined 

$ node server.js 
command hello 
commands { hello: [Function], 'test me': [Function] } 
undefined 

我覺得我失去了一些東西很簡單,命令式返回的字符串。

我希望console.log(scope.commands[key]);返回[功能],但沒有發生。

任何見解?

+2

我們需要看到更多的代碼。 server.js如何調用ManageCommands對象?你可以給我們一個jsbin或jsfiddle來重現問題嗎? –

+0

在'runCommand'中,請執行:'console.log('command',JSON.stringify(key))',並且報告你得到的結果。 – trincot

回答

0

Console.log不會打印返回和換行的特殊字符。

我把線成我輸出數組:

[ 'hello\r' ] 

我扯下了回報,我的功能按預期工作。

相關問題