在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言: 在 一、什么是闭包闭包( 简单理解闭包就是一个函数,他的特点是:一个作用域可以访问另外一个函数内部的局部变量。 举个简单的例子: 比如说我们现在有一个函数,在他的内部我们定义了一个局部变量,如果别的作用域可以访问这个局部变量,就产生了闭包。所以我们在该函数内部再定义另一个函数,看看里面的函数作用域是否可以访问外函数中的局部变量。 function f1(){ var num = 10; function f2(){ console.log(num); } f2(); } f1(); 打印的结果为: 可以发现成功将值打印出来,所以就产生了闭包。 我们将f2函数的调用改为f1函数的返回值,然后在函数外面调用f1函数,如下: function f1(){ var num = 10; function f2(){ console.log(num); } return f2() } var f = f1(); f(); 此时,就相当于f1外部的作用域访问其内部函数的变量。打印结果为: 可以发现,这里也可以使用其内部的局部变量,闭包产生。 所以可以得出结论:
二、 闭包的作用我们知道,在函数内部定义的局部变量,只能在函数内部可以使用,并且当我们使用完成后它就会被销毁,但是有闭包以后,这个局部变量就会在函数外部使用并且要等它的外部调用者调用完毕后才会被销毁,所以闭包的作用就是:延伸了变量的作用范围。 到此这篇关于JavaScript闭包closure详述的文章就介绍到这了,更多相关JavaScript闭包内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论