Javascript:如果有什么东西是真的,我怎么能创建一个能执行代码的函数?

时间:2016-11-11 20:24:17

标签: javascript onkeydown

我正在创建我的第一个JS库(主要是为了学习),我希望有一个带有两个参数的简单函数,(代码 )。这个函数会执行代码,这通常类似于" myFunction()",只要键是" down&#34 ; (比如onkeydown)。这是一个例子:

function moveForward() {
    // some code
}
function jump(height) {
    // some code
}

// whenever the w key is down, run the function "moveForward".
ice.keyDown("w", moveForward);

// whenever the space bar is down, run the function "jump".
ice.keyDown("space", jump);

值得注意的是,我还有两个类似的功能,ice.keyUp和ice.keyPress。这些几乎可以达到你的期望,就像ice.keyDown一样,但是对于onkeyup和onkeypress。

此外,我希望能够有第四个功能,它有三个参数,代码模式。此函数(可能称为ice.keyRemove)将删除任何现有的ice.keyDown / Up / Press功能,当按下/向上/按下时,该功能将执行代码。要清除按时执行任何代码的所有ice.keyDown / Up / Press功能,您将使用" all"作为参数代码。另一个例子:

// whenever the control key stops being pressed, run the function "myFunc".
ice.keyUp("ctrl", myFunc);

// whenever the control key is pressed (onkeypress), run the function "myOtherFunc".
ice.keyPress("ctrl", console.log("8 pressed"));

// stop running stuff when the ctrl key is down/up/pressed.
ice.keyRemove("ctrl", "all", "all");

我希望一切都有道理。正如我之前提到的,这主要是为了学习体验,所以请不要只给我代码,但要解释可能有效/无效的原因以及原因。我也知道有些库可以做到这一点,比如Keypress,但我再次尝试了解这样的事情是如何最有效地完成的。

0 个答案:

没有答案