美文网首页
闭包详解

闭包详解

作者: 蓝蓝红同学 | 来源:发表于2021-05-28 20:16 被阅读0次

    一、概念及理解

    概念:能读取其他函数内部变量的函数。

    概念理解:一般而言,函数内部的变量是无法被直接访问到的,于是通过在函数内部定义一个函数(即闭包)来解决这个问题,使用这个内部函数来调取父函数的内部变量。

    闭包的创建:­­­闭包就是可以创建一个独立的环境,每个闭包里面的环境都是独立的,互不干扰。

    二、内存泄漏

            关于闭包的内存泄露,因为闭包创建独立的环境,即每次外部函数执行的时 候,外部函数的引用地址不同,都会重新创建一个新的地址。

            但是关于闭包是否会造成闭包泄露,有待商榷,详细观点参考:

            https://zhuanlan.zhihu.com/p/22486908

            https://www.cnblogs.com/rubylouvre/p/3345294.html

    三、详细例子及解析

    重点:闭包找到的是同一地址中父级函数中对应变量最终的值

    例一

    例一

    例二

    例二

    例三

    例三

    例四

    例四

    例五

    例六

    例六

    ps:1.valueOftoString分别将数据转换为原始值和字符串,并且二者都可以进行手动的重写,例六就对toString进行了重写,使其返回sum的值

            2.alert、console.log等会自动调用toString方法

    例七

    例七

    例八

    例八

    例九

    例九

    例十

    例十

    例十一

    例十一

    注:本文中所有例子均来自于此博客:https://blog.csdn.net/weixin_43586120/article/details/89456183

    所有分析注释均为作者小白浅显理解,如有错误,欢迎指正!!

    相关文章

      网友评论

          本文标题:闭包详解

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