美文网首页
JavaScript闭包以及优缺点

JavaScript闭包以及优缺点

作者: HelloJames | 来源:发表于2018-03-13 11:46 被阅读34次

    闭包是JavaScript的一大难点, 也是它的特色. 很多高级的应用需要依靠闭包来实现.

    1. 变量作用域

    要理解闭包, 首先要理解JavaScript的特殊的变量作用域.
    变量的作用域无非就两种: 全局变量和局部变量.
    JavaScript语言的特别之外在于: 函数内部可以直接读取全局变量, 但是在函数外部无法读取函数内部的局部变量

    2.闭包的概念

    闭包就是能够读取其他函数内部变量的函数
    由于在JavaScript中, 只有函数内部的子函数才能读到局部变量, 所以说, 闭包可以简单理解成"定义在一个函数内部的函数".
    所以, 在本质上, 闭包就是将函数内部和函数外部连接起来的桥梁.

    3. 闭包的用途

    闭包可以用在很多地方, 它的最大用处有两个: 一个是读取函数内部的局部变量, 另一个就是让这些变量的值始终内存中, 不会被自动清除掉.

    4. 使用闭包的注意点

    1. 由于闭包会使得函数中的变量都被保存在内存中, 内存消耗很大, 所以不能滥用闭包, 否则会造成网页的性能问题, 在IE中可能导致内存泄露. 解决方法是, 在退出函数之前, 将不再使用的局部变量全部清除.
    2. 闭包会在父函数外部, 改变父函数内部变量的值, 所以, 如果你把父函数当作对象(object)使用, 把闭包当作它的公用方法, 把内部变量当成它的私有属性, 这时一定要小心, 不要随意改变父函数内部的值.

    相关文章

      网友评论

          本文标题:JavaScript闭包以及优缺点

          本文链接:https://www.haomeiwen.com/subject/tvcpxftx.html