使用注意
1、闭包会使函数中的变量全部存储在内存中,内存消耗很大,所以不能滥用闭包,否则会导致网页性能问题,在IE中可能会导致内存泄露。解决办法是,在退出函数之前,删除所有未使用的局部变量。
2、闭包将在父函数外部,改变父函数内部变量的值。因此,如果将父函数作为对象(object)使用,并将闭包作为其公共方法(PublicMethod),并将内部变量作为其私有属性(privatevalue),此时必须小心,不要随意改变父函数内部变量的值。
实例
fun函数返回一个f函数,形成闭包,所以a的值是在f函数定义的环境寻找,如果找不到就往上一层作用域寻找。
function fun(){ var a = 100; return function f(){ console.log(a) } } var a = 20; var f = fun(); f(); //打印出a的值为100
以上就是js使用闭包的注意点,希望对大家有所帮助。更多js学习指路:
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。