ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript闭包

2020-07-02 17:37:14  阅读:230  来源: 互联网

标签:闭包 return 函数 javascript asd var 变量


什么是闭包?

  闭包是指有权访问另一个函数作用域内变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,创建的函数可以
访问到当前函数的局部变量。

闭包的作用:

  闭包有两个常用的用途:

    1. 闭包的一个用途是使我们在函数外部能够访问到函数内部的变量。通过使用闭包,我们可以通过在外部调用闭包函数,从而在外部访问到函数内部的变量,可以使用这种方法来创建私有变量。

    2. 函数的另一个用途是使已经运行结束的函数上下文中的变量对象继续留在内存中,因为闭包函数保留了这个变量对象的引用,所以这个变量对象不会被回收。

闭包例: 

  HTML:   

  <div class="bbao">
    <h2>闭包</h2>
    <button id="btns">点击执行</button>
    <div>
      <span>
        显示数据:
      </span>
      <span id="messages"></span>
    </div>
  </div>

  javascript:

 

  var btns = document.getElementById('btns');
  var mess = document.getElementById('messages');

  function liang(){
    var i = 0;

    function hua(){
      i++;
      console.log(i);
      return i; // 这样写是为了打印 i ,实际开发直接写 return i++;
    }
    return hua; // 将 hua 函数以代码的形式返回
  }

  // 因为返回的是一个 函数的代码,所以将这个代码赋给一个变量,然后再将这个变量作为一个函数来执行
  // 相对于 var xxx = function(){ ... }

  var asd = liang();
  console.log('asd==>>', asd); //ƒ hua(){ i++; console.log(i); return i; }

  btns.onclick = function(){
    mess.innerHTML = asd();
  }

  在这里,想要在函数外部使用局部变量 i ,则可以通过上面的方式来实现。

  执行结果:

  

 

 

标签:闭包,return,函数,javascript,asd,var,变量
来源: https://www.cnblogs.com/hermit-gyqy/p/13226006.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有