什么情况下才会使用闭包?javascript 10

你们项目中什么情况下会用到闭包呢??麻烦不要把闭包原理这些复制粘贴进来哈,谢谢,我只是想知道你们在项目中什么情况下会用到闭包就行来了... 你们项目中什么情况下会用到闭包呢??
麻烦不要把闭包原理这些复制粘贴进来哈,谢谢,我只是想知道你们在项目中什么情况下会用到闭包就行来了
展开
 我来答
然后去远足
2017-06-04 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2431万
展开全部

只要一个作用域通过某种手段持有了另一个作用域声明的变量或成员(也即存在未销毁的局部变量),这个变量或成员就叫做“闭包”。

用到的情况太多了,JS 对闭包的支持本来就算是它的一个语言特性,随便写写就会出现闭包,你自己写的代码里就会大量的出现闭包(不管你意识没意识到)。

还是举一例吧,拿著名的 jQuery 举例子:

Sizzle.selectors = { 
  match: matchExpr, 
  filter: { 
    "ID": function( id ) { 
      var attrId = id; 
      return function( elem ) { 
        return elem.id == attrId;
      };
    }, 
    "TAG": function( nodeNameSelector ) { 
      var nodeName = nodeNameSelector; 
      return nodeNameSelector === "*" ? 
      function() { return true; } : 
      function( elem ) { 
        return elem.tagName && elem.tagName === nodeName; 
      }; 
    }
  }
}

这种 jQuery 源码中选择器的一段代码(太长未粘全),里面 attrId、nodeName 两个局部变量就是闭包。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式