gpt4 book ai didi

javascript - 了解 hotkeys.js 中的功能

转载 作者:行者123 更新时间:2023-11-30 16:57:16 30 4
gpt4 key购买 nike

我正在尝试创建一个类似于 hotkeys.js 的插件.

现在我只是浏览源代码并遇到以下代码:

jQuery.each(["keydown", "keyup", "keypress"], function() {
jQuery.event.special[this] = {
add: keyHandler
};
});

在每个函数之后我真的无法理解这部分:

jQuery.event.special[this] = {
add: keyHandler
};

那部分在做什么?这种在 JS 中称为什么的构造?我习惯于在 JS 中看到嵌套的对象文字,但对它们并不完全满意。我也知道现在的 JS 使用大量的对象字面量来传递参数。

有人能解释一下上面的语法并告诉我它在做什么吗?

也可以在 Github 上找到确切的线路.

最佳答案

首先

jQuery.each(["keydown", "keyup", "keypress"], function() {

遍历数组 ["keydown", "keyup", "keypress"]。它的处理程序被调用了 3 次(因为数组中有 3 个项目)并且此函数中的 this"keydown""keyup"“按键”分别。

所以

jQuery.event.special[this] = {
add: keyHandler
};

只是将对象 ({ add: keyHandler }) 添加到 jQuery.event.special 带有键 "keydown" 的对象, “keyup”“keypress”

所以 jQuery.event.special 对象将像这样处理:

jQuery.event.special == {
"keydown" : {...},
"keyup" : {...},
"keypress" : {...},
....
}

someObject["childName"] 表示法与 someObject.childName 相同。但首先允许您从某个变量(在您的情况下为 this)读取选项名称,因此使用 []

jQuery.event.special[this] 可以重写为 jQuery["event"]["special"][this]


{
add: keyHandler
}

add 是一个键。 keyHandler 是一个函数变量。在这种情况下,键的引号被省略,这也是正确的语法。相同于:

{
"add" : keyHandler
}

关于javascript - 了解 hotkeys.js 中的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473051/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com