2016 - 2024

感恩一路有你

javascript的作用 JavaScript里的闭包是什么?应用场景有哪些?

浏览量:2365 时间:2021-03-12 05:57:47 作者:admin

JavaScript里的闭包是什么?应用场景有哪些?

闭包是指在Javascript中,内部函数总是可以访问其所在的外部函数中声明的参数和变量,即便外部函数已经被销毁,闭包任然可以持有它们(参数或变量)

使用场景

很多人可能不清楚闭包是什么,但是在下代码时其实已经时不时地用到了闭包。比如:

利用闭包实现私有变量

慎用闭包

闭包是一把双刃剑,需要慎用。。。

正如它的定义一样,闭包能够保存函数外部的参数或变量 ,那么外部函数被销毁时,被闭包持有的这些参数或变量,在闭包函数被销毁前,是不会被销毁的,我们需要清晰地知道,这些闭包函数它们的销毁时机,避免内存泄漏 , 比如:


上图写了一段伪代码,Dep中的getProfile方法和该方法访问的 profile变量构成了一个闭包,这个闭包被 document 注册成为了一个click handler,所以在这个click handler被注销之前, 闭包所持有的 profile变量都会一致停留在内存无法释放,如果开发者忽略了注销事件的问题,就会造成较严重的内存泄漏。

JavaScript闭包好处是什么?为什么用到闭包?

闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会在f1调用后被自动清除。

为什么使用闭包我举个例子

"use strict"
function num(){
//用var声明一个变量num1
var num1 = 15
}
alert(num1)//num1 is not defined

我们在函数外是访问不了函数内的局部变量!正常的情况下我们是办不到的

假设我们有个需求需要访问函数内的变量,我们就可以用闭包实现

"use strict" function num(){ //用var声明一个变量num1 var num1 = 15 return function(){ return num1 } } var num2 = num() var num3 = num2() alert(num3)//15 这样我们就可以取到局部变量了。这就是闭包!

javascript的作用 什么是闭包 闭包的作用 js主要是做什么的

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。