闭包是JS中很重要的一部分,但是究竟什么是闭包,总是让刚开始学习的人感觉云里雾里,今天特地总结了一下,拿给大家看一下。
首先来看一段代码吧:
// 闭包
function F1(){
var a = 100;
// 返回一个函数(函数作为返回值)
return function(){
console.log(a)
}
}
// f1 得到一个函数
var f1 = F1();
var a = 200;
f1();// a=100 一个函数的父级作用域是他定义时候的作用域,而不是执行时候的作用域
什么是闭包呢?这就是闭包了。
闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取[局部变量],所以闭包可以理解成“定义在一个[函数]内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。
如果这样还是理解不了,那就把这段简单的代码多敲几遍。书读百遍其义自见嘛。
网友评论