javascript - 函数的范围问题并转换为箭头函数

标签 javascript arrow-functions

我正在学习如何使用箭头函数,并且我尝试在下面转换我的代码。 funcCall 和 EnterKey 存在范围问题。我相信箭头函数应该可以解决这个问题。

function pressKey(funcCall, enterKey = 13) {
    document.addEventListener("keydown", _onKeyDown);
}
function _onKeyDown(e) {
    if(e.keyCode === enterKey) {
        e.preventDefault();
        funcCall();
    }
}

最佳答案

您需要在 pressKey 范围内创建 _onKeyDown,以便它可以访问 funcCallenterKey通过闭包:

function pressKey(funcCall, enterKey = 13) {
    function _onKeyDown(e) {
        if(e.keyCode === enterKey) {
            e.preventDefault();
            funcCall();
        }
    }
    document.addEventListener("keydown", _onKeyDown);
}

是否使用箭头函数并不重要。

关于javascript - 函数的范围问题并转换为箭头函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54700329/

相关文章:

javascript - 闭包中的箭头函数

javascript - 我们可以在删除父节点之前复制该节点吗?

javascript - 如何使用正则表达式从字符串中获取浮点值?

javascript - 在 promise 链上返回空箭头函数

javascript - 如何使用reduce将数组转化为对象?

javascript - 使用带有箭头功能的 watchPosition

javascript - 如何在forEach中使用箭头函数?

JavaScript 拼接并放入另一个数组

javascript - 在 AngularJS 中的选择控件(ng-options)中填充选项后,如何反射(reflect)下拉字段中的当前值?

Javascript 字符串为给定格式