Javascript bind()函数和闭包之间的根本区别是什么?
我需要帮助理解Javascript中闭包和Javascript bind()函数和闭包之间的根本区别是什么?,javascript,jquery,closures,Javascript,Jquery,Closures,我需要帮助理解Javascript中闭包和bind()函数之间的根本区别。我尝试了.bind来设置这个范围,并使用闭包来获取范围 bind()函数和闭包之间的根本区别是什么 在JS中 在哪种情况下应该使用bind()函数,在哪种情况下应该使用闭包 这是代码。我在JS中使用ul作为闭包。我可以使用bind()函数执行此操作吗 ul.find("li").each(function(a, ele) { $(ele).attr("tabindex", options.items[a].tabi
bind()
函数之间的根本区别。我尝试了.bind来设置这个范围,并使用闭包来获取范围
bind()
函数和闭包之间的根本区别是什么
在JS中
在哪种情况下应该使用bind()
函数,在哪种情况下应该使用闭包
这是代码。我在JS中使用ul
作为闭包。我可以使用bind()
函数执行此操作吗
ul.find("li").each(function(a, ele) {
$(ele).attr("tabindex", options.items[a].tabindex);
$(ele).on("focusout", function () {
setTimeout(function (ul) {
$activeElement = $(document.activeElement);
//ul.find("li").indexOf($activeElement) < 0 ? $(ul).focus() :"";
debugger;
}(ul), 1000);
});
});
ul.find(“li”)。每个(功能(a,ele){
$(ele.attr(“tabindex”,options.items[a].tabindex);
$(ele).on(“focusout”,函数(){
设置超时(功能(ul){
$activeElement=$(document.activeElement);
//ul.find(“li”).indexOf($activeElement)<0?$(ul.focus():“”;
调试器;
}(ul),1000);
});
});
定义“关闭”。您对闭包的定义是什么?bind()
方法和闭包是非常不同的概念,因此我不确定您希望进行什么样的比较。这听起来像个X/Y问题。你真正想解决的问题是什么?我已经更新了这个问题。以上代码可以使用函数bind完成。首先,你没有闭包。你有自己的生活。其次,您可以通过不使用each()
并对所有li
元素应用单个事件处理程序来完全避免问题。您前面问题的公认答案没有意义,并且会给代码增加不必要的开销。ul
变量已在外部范围内定义,您可以在setTimeout
范围内轻松使用,无需使用其他代码访问变量。