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 ,(两秒后运行程序结束)

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

相关文章

  • JavaScript中this详解

    JavaScript中this详解

    都说 JavaScript 是一种很灵活的语言,这其实也可以说它是一个混乱的语言。它把函数式编程和面向对象编程糅合一起,再加上动态语言特性,简直强大无比,下面小编给大家介绍Javascript中this详解,需要的小伙伴可以来参考下
    2015-09-09
  • js面向对象之公有、私有、静态属性和方法详解

    js面向对象之公有、私有、静态属性和方法详解

    这篇文章主要详细介绍了js面向对象之公有、私有、静态属性和方法,并附上详细的示例,非常的细致全面,这里推荐给大家,有需要的小伙伴可以参考下
    2015-04-04
  • Javascript学习之谈谈JS的全局变量跟局部变量(推荐)

    Javascript学习之谈谈JS的全局变量跟局部变量(推荐)

    这篇文章主要介绍了Javascript学习之谈谈JS的全局变量跟局部变量虽然脚本之家小编以前发过,但还是这篇文章整理的比较好,需要的朋友可以参考一下
    2016-08-08
  • 屏蔽script注入小例子

    屏蔽script注入小例子

    有关script注入想必大家也有所了解,在本文将为大家介绍下如何屏蔽script注入,下面有个不错的示例大家可以感受下
    2013-11-11
  • JS Array.slice 截取数组的实现方法

    JS Array.slice 截取数组的实现方法

    这篇文章主要介绍了JS Array.slice 截取数组的实现方法,因为我们需要控制一下长度,需要的朋友可以参考下
    2016-01-01
  • 微信小程序去哪里找 小程序到底如何使用(附小程序名单)

    微信小程序去哪里找 小程序到底如何使用(附小程序名单)

    今天凌晨,微信负责人张小龙在微信朋友圈晒出了一组图,网友看到纷纷“炸裂”,这到底是什么?是的,微信小程序如约上线,微信小程序怎么打开,微信小程序在哪里进入,请阅读本文
    2017-01-01
  • js动态给table添加/删除tr的方法

    js动态给table添加/删除tr的方法

    这篇文章介绍了js动态给table添加/删除tr的方法,有需要的朋友可以参考一下
    2013-08-08
  • 微信小程序url传参写变量的方法

    微信小程序url传参写变量的方法

    这篇文章主要介绍了微信小程序url传参写变量的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • javascript获取网页宽高方法汇总

    javascript获取网页宽高方法汇总

    本文给大家汇总介绍了下javascript获取网页宽高的方法,以及各个浏览器下不同方法获取到的值的对比,有需要的小伙伴可以参考下。
    2015-07-07
  • javascript smipleChart 简单图标类

    javascript smipleChart 简单图标类

    支持 线性图 区域图 柱状图 饼图 支持多浏览器 用到的是svg vml 之后加上 多层饼图 分段图 和组合图
    2011-01-01

最新评论