JavaScript闭包的简单应用

 更新时间:2017年09月01日 10:35:55   作者:Mr.曹  
这篇文章主要为大家详细介绍了JavaScript闭包的简单应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

闭包定义

在JavaScript中,当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。简单说,闭包就是能够读取其他函数内部变量的函数。

闭包的作用:

1. 可以读取函数内部的变量
2. 让这些变量的值始终保持在内存中。
闭包简单应用

例一:

function a() { 
  var i = 0; 
 function b() {
  console.log(++i);
 } 
 return b;
}      
var c = a();  //执行完var c=a()后,变量c指向了函数b,再执行c()后就会显示i的值(为1)。
c();    //输出1

例二:

(function() { 
var i = 0; 
 return function(){
   console.log(++i);
  }
})()();     //输出1

例三:

(function(i) { 
 return function(){
   console.log(++i);
  }
})(0)();     //输出1

例四:

for (var i = 0; i < 3; i++) {
 setTimeout((function(i) {    
  return function() {
   console.log(i);
  };
 })(i), 2000);
 console.log(i+10);
}      //输出 10 11 12 (隔两秒后)0 1 2

例五:

for (var i = 0; i < 3; i++) {
 setTimeout((function(i) {
  return function() {
   console.log(i);
  };
 })(i)(), 2000);
 console.log(i+10);
}      //立即输出 0 10 1 11 2 12 ,(两秒后运行程序结束)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • js parseInt("08")未指定进位制问题

    js parseInt("08")未指定进位制问题

    今天在做JS关于月份的判断,对于parseInt("01")到parseInt("07");都能得到正确的结果,但如果是parseInt("08")或parseInt("09")则返回0,首先看parseInt语法:parseInt(string, radix);
    2010-06-06
  • Thinkphp模板没有解析直接原样输出的解决方法

    Thinkphp模板没有解析直接原样输出的解决方法

    这篇文章主要介绍了Thinkphp模板没有解析直接原样输出的解决方法,是很多开发者都遇到的问题,非常实用,需要的朋友可以参考下
    2014-10-10
  • PHP实现记录代码运行时间封装类实例教程

    PHP实现记录代码运行时间封装类实例教程

    这篇文章主要给大家介绍了利用PHP实现记录代码运行时间的封装类的相关教程,文中给出了详细的示例代码供大家参考学习,需要的朋友可以参考下
    2017-05-05
  • javascript倒计时效果实现

    javascript倒计时效果实现

    这篇文章为大家分享了javascript倒计时效果实现代码段,现今团购网、电商网、门户网等,常使用时间记录重要的时刻,如时间显示、倒计时差、限时抢购等,特别是双十一活动,需要的朋友可以参考下
    2015-11-11
  • JavaScript获取元素尺寸和大小操作总结

    JavaScript获取元素尺寸和大小操作总结

    本文总结了使用JavaScript获取指定元素大小、位置的几种方式。如果你用的是JQuery,则获取元素大小是非常简单的。但是我们还是有必要知道如何通过原生JavaScript来获取,需要的朋友可以参考下
    2015-02-02
  • 如何通过setTimeout理解JS运行机制详解

    如何通过setTimeout理解JS运行机制详解

    这篇文章主要给大家介绍了关于如何通过setTimeout理解JS运行机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • js限制文本框只能输入数字方法小结

    js限制文本框只能输入数字方法小结

    这篇文章主要分享下js代码限制文本框中只能输入数字的多个实例,学习下js控制文本框中输入数字的方法,需要的朋友可以参考下
    2014-06-06
  • js编写trim()函数及正则表达式的运用

    js编写trim()函数及正则表达式的运用

    js中本身是没有trim函数的,不过你可以自己写一个,下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去
    2013-10-10
  • 重置Redux的状态数据的方法实现

    重置Redux的状态数据的方法实现

    这篇文章主要介绍了重置Redux的状态数据的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 用js格式化金额可设置保留的小数位数

    用js格式化金额可设置保留的小数位数

    这篇文章主要介绍了如何用js格式化金额并设置保留的小数位数,需要的朋友可以参考下
    2014-05-05

最新评论