2015-07-02 27 views
1

我定義了一些函數,我想獲得用戶輸入來調用這些函數。我有以下代碼,但無法弄清楚如何在使用變量時調用實際的函數。我假設下面的代碼將工作..簡單的Javascript:如何根據用戶提示調用函數;

謝謝!

var someFunctions = { 
    play: function() { 
    if (player.stopped()) { 
     player.play(); 
    } else { 
     return false; 
    } 
    } 


var getCommand = function(){ 

    var command = prompt("Please enter a command"); 

    if (!(command in someFunctions)) { 
    alert('command not recognized'); 
    getCommand(); 
    } else { 
    command(); 
    } 

} 

getCommand(); 
+0

'command'是一個字符串 - 只是屬性名稱。你不能稱它。你必須訪問方法:'someFunctions [command]()' – Bergi

回答

1
var someFunctions = { 
    play: function() { 
    if (player.stopped()) { 
     player.play(); 
    } 
    else { 
     return false; 
    } 
    } 
}; 

var getCommand = function(){ 
    var commandInput = prompt("Please enter a command"); 
    var command = someFunctions[commandInput]; 

    if (!command) { 
     alert('command not recognized'); 
     getCommand(); 
    } 
    else { 
     command(); 
    } 
}; 

getCommand(); 
+1

他們不是。他們被放在'someFunctions'! – Bergi

0

你的代碼是不工作的原因是因爲你缺少閉幕someFunctions}

var someFunctions = { 
    play: function() { 
    if (player.stopped()) { 
     player.play(); 
    } else { 
     return false; 
    } 
    } 
} // here 

你的通話很好,你可以像使用普通通話一樣調用「變量」函數。 「變量」函數和普通函數之間的唯一區別是,您可以在聲明它之前調用普通函數(如果您至少在相同範圍內)