闭包定义:闭包就是能够读取其他函数内部变量的函数,在js中,只有函数内部的子函数才能读取局部变量,简单来说,闭包可以理解成:定义在一个函数内部的函数。本质上:闭包是将函数内部和函数外部连接起来的桥梁;
特性:1,函数嵌套函数;2,函数内部可以引用外部的参数和变量;3,参数和变量不被垃圾回收机制回收;
优点:1,变量可以长期存储在内存中;2,避免全局变量的污染;
缺点:1,变量常驻内存,增加内存使用量;2,使用不当造成内存泄漏;
闭包的简单例子:
function init() {
var name = "Mozilla"; // name 是一个被 init 创建的局部变量
function displayName() { // displayName() 是内部函数,一个闭包
alert(name); // 使用了父函数中声明的变量
}
}
init();