Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript bind()函数和闭包之间的根本区别是什么?_Javascript_Jquery_Closures - Fatal编程技术网

Javascript bind()函数和闭包之间的根本区别是什么?

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

我需要帮助理解Javascript中闭包和
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
    范围内轻松使用,无需使用其他代码访问变量。