深入理解js闭包

深入理解js闭包

1.闭包的含义

1.1 闭包:有权在一个函数内部可以访问另一个函数作用域并且将此函数返回

2.想要了解闭包,首先要理解函数的作用域

2.1 js中变量的作用域分为两种,全局变量和局部变量,简单来说,除了函数中定义的变量是局部变量外,其他的都是全局变量。

3. 闭包的作用

3.1 可以在函数外面访问函数里面的变量

3.2 可以保存函数中的变量值,不用担心调用函数时变量变化。

4. 什么是闭包

4.1 在函数外部访问函数内的变量,由于访问不到,所以要变通来访问函数中的变量,这种方法叫做闭包。

function a(){

var b=6;

console.log(b)//6

}

console.log(b);//error 访问不到b的值

4.2解决方法:可以函数中套用函数,将套用的函数作为返回值。由外部接收返回值,接收到的数值就是内部变量的变量值(函数中的子函数可以访问到父函数的变量值。)


function a(){

var b=6;

console.log(b)//6

function c(){

console.log(b)//6

};

c();

return function c(){

return b;

};

}

var e=a();

console.log(e());//6

5. 要注意

5.1由于闭包会使得函数中的变量被保存到内存中,这样很消耗内存,所以一定要注意不能随便用闭包。但是可以在退出函数之前,释放不使的局部变量,以清理内存,保证浏览器性能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,260评论 0 13
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,963评论 2 17
  • Array.of()函数 函数作用:将一组值,转换成数组。 传进去的数字是:1~5,最后经过Array.of函数...
    CRUD_科科阅读 296评论 0 1
  • 三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...
    梁同学de自言自语阅读 1,507评论 0 6
  • 个人要努力克服沉没成本的好, 我之前在这方面是会很果断放弃沉没成本的,把时间和精力放在更能全身心投入更有可塑性的事...
    FineYoga小芳阅读 280评论 0 1