gpt4 book ai didi

javascript apply() 函数、jQuery 和 'this' 指针

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

我正在尝试理解这段代码中发生了什么,如果我弄错了请纠正我

function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}

$(document).on("keyup", "#SearchTerm", debounce(function (e) {
e.preventDefault();
var form = $(e.target).closest('form');
$(form).submit();
}, 300))

首先是 debounce 返回的函数,它立即执行并且 this 引用/上下文将是“#SearchTerm”输入元素,因为 jQuery 将函数调用附加到它的 keyup 事件?

其次,在这种情况下,arguments 对象是否由 jQuery 'keyup' 事件自动填充?

谢谢!

最佳答案

Firstly the returned function from debounce, this executes immediately and the this reference / context will be the "#SearchTerm" input element because jQuery attached the function call on its keyup event?

这是正确的。

Secondly, in this instance is the arguments object automatically populated by the jQuery 'keyup' event?

arguments 是原生 JS 构造,与 jQuery 没有任何关系。它返回一个类似数组的对象,其中包含传递给函数的所有参数。参见 MDN获取更多信息。

关于javascript apply() 函数、jQuery 和 'this' 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957092/

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