欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JavaScript闭包函数的理解与使用

发布时间:2024/1/17 javascript 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JavaScript闭包函数的理解与使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

要理解闭包,首先理解javascript特殊的变量作用域,变量的作用域无非就是两种: 全局变量
局部变量

javascript语言的特殊处就是函数内部可以读取全局变量。

1.如何从外部读取局部变量

我们有时候需要得到函数内的局部变量,但是在正常情况下,这是不能读取到的,只有通过变通方法才能读取到。

在javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

2.闭包的概念

闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。

3.闭包的特性

1).函数嵌套函数

2).内部函数可以引用外层的参数和变量

3).参数和变量不会被垃圾回收机制回收

4.闭包的用途

1).闭包可以读取函数内部的变量

2).可以让变量的值始终保持在内存中,生命周期比较长

5.闭包的缺点

闭包不能滥用,否则会导致内存泄露,影响网页的性能。闭包使用完了后,要立即释放资源,将引用变量指向null。

举个小例子大家看一下

<script>function demo() {var a = 1;return function(b) {return (a++) + b;}}var b = demo()(1);console.log(b); </script> 复制代码

上述例子中:demo函数中的变量a,在下面匿名函数中是可以读取的,所以console.log(b),打印出来的值是2。

转载于:https://juejin.im/post/5b4feedb5188251aae3297ff

总结

以上是生活随笔为你收集整理的JavaScript闭包函数的理解与使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。