码迷,mamicode.com
首页 > 其他好文 > 详细

闭包的总结

时间:2018-04-01 18:51:49      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:console   ret   nbsp   最大   解释   function   梳理   span   连接   

十点读书佳句:我爱你,不光是因为你的样子,还因为和你在一起,我的样子。

对于闭包一直没有系统化的去理解它,借此好好梳理一下思维加深理解:

一、什么是闭包

定义:定义在一个函数内部的函数。本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁

解释:要理解这句话,首先明白js中的变量作用域。

变量的作用域无非就是两种:全局变量和局部变量。

js语言中,函数内部可以直接读取函数外部的全局变量,而函数外部却无法读取函数内部的变量。

那么如何获取函数内部的变量呢,那就是在函数内部,在定义一个函数,这个函数可以拿到它上一级函数的变量,接着吧这个函数当成返回值返回,就可以拿到定义在函数内部的变量

实例:

function fun1(){
  var a=100
  return function fun2(){
    console.log(a)
  }
}
var result=fun1()//这个时候返回的是fun2函数
result()//再次调用 打印输出 100

 

注意点:函数内部声明变量的时候,一定要使用var  如果不用的话,实际上声明了一个全局变量

二、闭包的用途

最大用处有两个:①可以读取函数内部的变量

        ②就是让函数内部变量的值始终保存在内存中

闭包的总结

标签:console   ret   nbsp   最大   解释   function   梳理   span   连接   

原文地址:https://www.cnblogs.com/shengmo/p/8687409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!