美文网首页js
闭包原理、作用以及如何防止变量污染

闭包原理、作用以及如何防止变量污染

作者: Nice先生的狂想曲 | 来源:发表于2019-10-22 12:12 被阅读0次

前言

很多人都听说过闭包,甚至都接触过它,但让你准确地说出闭包是什么或者原理是什么,就突然间错愕了

闭包是指有权访问另一个函数作用域中变量的函数

主要作用

延伸了变量的作用范围;函数封装私有变量

经典例子
  • 循环点击事件、立即执行函数——小闭包

      var lis=document.querySelector("ul").querySelectorAll("li")
      for(var i=0;i<lis.length;i++){
          (function(i){
              lis[i].onclick=function(){
                  console.log(i);
              }
          })(i)
      }
    

    由于是代表闭包的例子,事实上如果用let定义i,则不需要进行闭包,这里闭包的作用就相当于延伸了i的作用范围

    for(let i=0;i<lis.length;i++){
      lis[i].onclick=function(){
          console.log(i);
      }
    }
    
  • 函数的私有变量以及防止变量污染

      var Person=(function(){
      var name="JJ"
      function getName(){
          return name;
      }
        return getName;
      })()
      console.log(Person());
    

相关文章

  • 闭包原理、作用以及如何防止变量污染

    前言 很多人都听说过闭包,甚至都接触过它,但让你准确地说出闭包是什么或者原理是什么,就突然间错愕了 闭包是指有权访...

  • jQuery源码的简单理解及其引申的相关问题的解答

    1.jQuery运用了沙箱模型,使用闭包来隔离变量,制造出块级作用域,防止全局变量污染。 2.jQuery在闭包内...

  • 闭包

    闭包:函数中的函数,可访问另一个函数作用域内的变量,且这变量不被垃圾回收; 作用 防止对全局作用域污染;保护函数内...

  • 浅谈JavaScript中的闭包

    闭包是指有权访问另一个函数作用域中的变量的函数,个人认为闭包最大的用处就是防止对全局作用域的污染。 试想如果我们把...

  • 闭包和高阶函数学习笔记

    一、闭包 闭包的形成与变量的作用域以及变量的生存周期密切相关。 1.1 变量的作用域 变量的作用域:指变量的有效范...

  • JS中JQ框架的分析

    1. 首先我们在看jQ代码的时候 发现整体是一个 闭包函数 作用:1.防止全局变量污染(只提送2个变量 $ 和 j...

  • JS老生常谈的闭包

    什么叫闭包 闭包是指可以访问另一个函数作用域变量的函数。 为什么需要闭包 全局变量容易造成变量污染,二局部变量受限...

  • 11.命名空间,对象枚举

    命名空间的作用:管理变量,防止全局污染,适用于模块化开发,闭包的变量私有化就是一个很好的处理命名空间的问题. 小技...

  • Swift-08:闭包

    1.分析闭包以及闭包捕获变量的原理2.逃逸闭包 & 非逃逸闭包 一、闭包 闭包是一个捕获了全局上下文的常量或者变量...

  • 命名空间

    管理变量,防止全局污染使用闭包,管理变量空间 实现连续调用 属性拼接 对象枚举1)直接遍历 2)判断原型

网友评论

    本文标题:闭包原理、作用以及如何防止变量污染

    本文链接:https://www.haomeiwen.com/subject/qsitvctx.html