我創建一個帆布遊戲的樂趣,我想重新考慮我的多個其他一些if語句,而不是使用對象查找表。Javascript查找表vs其他如果和多個匹配結果
這是我上的keydown分配變量值電流代碼:
function keyDown(e) {
keypressed = true;
if (e.keyCode == 39 || e.keyCode == 68) {rightKey = true; }
else if (e.keyCode == 37 || e.keyCode == 65) {leftKey = true;}
else if (e.keyCode == 38 || e.keyCode == 87) {upKey = true; }
else if (e.keyCode == 40 || e.keyCode == 83) {downKey = true; }
else if (e.keyCode == 80) { isPaused = !isPaused; document.body.classList.toggle('pause'); }
if (e.keyCode === 69) { startHit(); }
}
我想分配既WSAD鍵和方向鍵做同樣的事情,所以在使用的||在條件允許的情況下。
,我讀了使用對象文本查找表來實現這個更快的方式,這是我的嘗試:
var codes = {
39 : function() {
return rightKey = true;
},
37 : function() {
return leftKey = true;
},
38 : function() {
return upKey = true;
},
40 : function() {
return downKey = true;
},
80 : function() {
isPaued = !isPaused;
document.body.classList.toggle('pause');
},
69 : startHit
}
codes[68] = codes[39];
codes[65] = codes[37];
codes[87] = codes[38];
codes[83] = codes[40];
function keyDown(e) {
keypressed = true;
codes[e.keyCode]();
}
這只是正常的,但我不知道底部按鍵的分配是做到這一點的最佳方式?我顯然不能使用||操作員在左手任務中,那麼是否有更乾淨的方式來做到這一點,還是應該堅持其他ifs?
此外,我知道我可以使用switch語句,但我覺得它會看起來類似於我上面所做的。
任何建議將是偉大的。謝謝。
完全相同這看起來像一個不錯的解決方案。我不知道我可以在每種情況下將兩種情況結合在一起! (儘管switch語句看起來有點奇怪:D) –