试题
考点

js语言和框架-JavaScript语言-闭包相关

面5笔5

你能写一个闭包出来吗?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

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出的内部函数去访问或修改外部函数的变量。

文章链接

评论
暂无评论

加载更多