JavaScript闭包

原创 2015年11月21日 17:46:03

  闭包,是指在语法域位某个特定的区域,具有持续参照(读写)位于该区域内
自身范围之外的执行域上的非持久型变量值能力的段落.这些外部执行域的
非持久型变量神奇地保留它们在闭包最初定义(或创建)时的值(举杯连结).


  闭包通常是在动态语言中才有的概念,它是某些可以访问外部执行域的段落
JavaScript中的闭包,是通过定义在函数体内部的function来实现的.


  闭包和函数的关系,应当类似于一种动态生静态,结构和实例的关系.


  闭包可以外部环境,也可以写外部环境


例子:


//定义一个计数器生成函数,生成某种类型的计数器
function counter(iden,addi){
  //闭包"外部",函数counter"内部"的参数iden的值在闭包被调用时的时候会被改变
  return function(){
    //改变iden的值
    iden = iden+addi;
    console.log("--iden"+iden);
    return iden;
  }
}
//产生一个从0开始计数,每次计数值加1的计数器
var c1 = counter(0,1);
//产生一个从10开始计数,每次数值减1的计数器
var c2 = counter(10,-1);
for(var i=0 ; i<10 ;i++){
  //循环计数
  c1();
}
for(var i=0 ; i<10 ;i++){
  //循环计数
  c2();
}

JavaScript闭包详解

1.闭包概念及闭包作用域链  闭包是指有权访问另外一个函数作用域中的变量的函数。创建闭包的常见的方式,就是在函数内部创建另外一个函数。    function closure(arg){       ...
  • vuturn
  • vuturn
  • 2015年03月23日 10:55
  • 2249

Javascript闭包——懂不懂由你,反正我是懂了

摘要:“如果你不能向一个六岁的孩子解释清楚,那么其实你自己根本就没弄懂。”好吧,我试着向一个27岁的朋友就是JS闭包(JavaScript closure)却彻底失败了。越来越觉得国内没有教书育人的氛...
  • ty_hf
  • ty_hf
  • 2015年10月12日 16:59
  • 734

JavaScript闭包的原理与缺陷

闭包的原理闭包是指有权访问另一个函数作用域中的变量的函数。根据下面的代码示例来理解什么是闭包,在add函数内部的匿名函数中,访问到外部函数的变量outerArg,在执行add(10)之后外部函数返回了...
  • hongchh
  • hongchh
  • 2016年08月16日 16:37
  • 1316

Javascript 中 作用域、闭包与 this 指针

js 中的作用域,闭包的理解和运用,this 的理解和运用
  • JunBo_Song
  • JunBo_Song
  • 2016年08月20日 14:17
  • 4388

javascript -function- 函数从基本到闭包详解

1)函数定义、 函数:一种代码的分组形式,可以通过这种形式赋予某组代码一个名字,以便日后重用时调用。2)、函数组成、 a. function 子句(数据类型)。 b. 函数名字,也可以没有函数,...
  • hejunpochen
  • hejunpochen
  • 2016年05月11日 20:11
  • 2475

理解Javascript的闭包【讲得很清楚,推荐看】

前言 还是一篇入门文章。Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包对于那些使用传统静态语言C/C++的程序员来说是一个新的语言特性。本文将以例子入手来介绍Ja...
  • shangjianwen2
  • shangjianwen2
  • 2013年09月17日 22:20
  • 2917

前端知乎:关于阮一峰博客《学习Javascript闭包》章节中最后两个思考题

阮一峰博客:《学习Javascript闭包》章节中最后有个思考题: 如果你能理解下面两段代码的运行结果,应该就算理解闭包的运行机制了。 代码片段一 var name = ...
  • mengnst
  • mengnst
  • 2015年12月08日 22:27
  • 979

闭包经典面试题

闭包应该是前段面试中经常碰到的面试题,很多人都会在这个问题上被问住。如果想要弄清楚就要掌握闭包的概念; 首先看面试题: for (var i = 1; i   setTimeout...
  • donggx
  • donggx
  • 2017年04月14日 14:13
  • 5204

【JS学习笔记】 匿名函数和闭包

【JS学习笔记】 匿名函数和闭包
  • QIULANZHU
  • QIULANZHU
  • 2016年01月30日 19:52
  • 816

如何理解和应用闭包

何为闭包 函数内部又定义了一个函数,这个子函数就可以称为闭包。 闭包的特点 闭包的一个特点就是闭包内部可以引用外部函数的变量。 原理 要理解闭包的原理,最重要的是要理解J...
  • qiupu4667
  • qiupu4667
  • 2017年04月12日 20:26
  • 315
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript闭包
举报原因:
原因补充:

(最多只允许输入30个字)