校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > js语言和框架 > 闭包相关
题目

你能写一个闭包出来吗?

解答
function outerFn(){
var data = 10
var innerFn = function(){
data += 1
console.log(data)
}
return innerFn
}
var result = outerFn()
result() //11
result() //12

现有一个名为outerFn的函数,它的内部包含一个已经声明的变量data和一个内部函数innerFn。一般情况下,是无法访问或修改data的,但是innerFn可以访问到data,我们通过调用return出的innerFn,就可以间接的去修改和访问到data的数据了。
这样的做法,被总结称为 闭包。

那么如何能访问或修改到一个函数内部的变量呢?
函数的return就是这个传送门,可以将一个内部函数送出外部函数。 即使无法直接访问到外部函数内部的变量,也可以通过return出的内部函数去访问或修改外部函数的变量。

C 0条回复 评论

帖子还没人回复快来抢沙发