第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何引用對象中的鍵(而不是值)來實現(xiàn)對計算器的鍵盤支持?

如何引用對象中的鍵(而不是值)來實現(xiàn)對計算器的鍵盤支持?

富國滬深 2022-11-11 16:07:22
我正在嘗試為我的計算器添加鍵盤支持,這樣您就可以按鍵而不是單擊屏幕。這看起來是練習(xí)使用對象的好機會,但我顯然在這里做錯了。你能給我一個提示嗎?let keyboard = {  48: zeroFunc,  49: oneFunc,  50: twoFunc,  51: threeFunc,  52: fourFunc,  53: fiveFunc,  54: sixFunc,  55: sevenFunc,  56: eightFunc,  57: nineFunc};我試過這樣的事情:document.addEventListener("keydown", checkKeyPressed, false);function checkKeyPressed(e) {    if (e.keyCode === keyboard.key) {        keyboard[action]    }}和這個:document.addEventListener("keydown", checkKeyPressed, false);function checkKeyPressed(e) {Object.keys(keyboard).forEach(key, index) => {    if (e.keyCode === key) {      keyboard[index]    }  }};我可以為每個鍵碼做一個 if 語句,但我懷疑有一種更優(yōu)雅的方法可以做到這一點。
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

好吧,既然您已經(jīng)有一個將鍵碼映射到函數(shù)的對象,您可以像這樣簡單地調(diào)用它們:


document.addEventListener("keydown", checkKeyPressed, false);

function checkKeyPressed(e) {

    if (keyboard[e.keyCode] != undefined) {

         keyboard[e.keyCode](e); //<--  you need to call the function, once you get it...

    }

};

或者甚至,


function checkKeyPressed(e) {

         keyboard[e.keyCode] ? keyboard[e.keyCode](e) : null; 

};


查看完整回答
反對 回復(fù) 2022-11-11
?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

document.addEventListener("keydown", checkKeyPressed, false);

function checkKeyPressed(e) {

    const action = keyboard[e.keyCode];

    if (action) action();

}


查看完整回答
反對 回復(fù) 2022-11-11
?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

你可以只用一個 if 語句


function checkKeyPressed(e) {

    if (keyboard[e.keyCode])

        keyboard[e.keyCode]();

}

如果e.keyCode不是對象鍵盤中的值之一,keyboard[e.keyCode]將返回undefined并且內(nèi)部代碼將不會運行。


您還需要在函數(shù)后添加括號才能實際調(diào)用它


查看完整回答
反對 回復(fù) 2022-11-11
  • 3 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號