1、函数a中有一个函数b,可以访问函数a中的变量,然后形成闭包。
2、闭包可以读取其他函数内部的变量。
3、闭包是连接函数内部和函数外部的桥梁。
返回闭包时,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
实例
function count() { var arr = []; for (var i = 1; i <= 3; i++) { //创建的3个函数都添加到一个`Array`中返回 arr.push(function () { return i * i; }); } return arr; } var results = count(); var f1 = results[0]; var f2 = results[1]; var f3 = results[2]; alert(f1());//16 alert(f2());//16 alert(f3());//16
以上就是js中闭包的理解,希望对大家有所帮助。更多js学习指路:js教程