美文网首页
闭包详解

闭包详解

作者: 蓝蓝红同学 | 来源:发表于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

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

相关文章

  • js闭包问题

    javascript 闭包的概念,闭包的作用,闭包经典面试题详解(配图解) 函数作用域(闭包前置知识) 要彻底弄懂...

  • 闭包

    一、闭包技术详解 1.1 什么是闭包? 闭包实际上是一种函数,所以闭包技术也是函数技术的一种;闭包能做的事情函数几...

  • 详解js闭包

    详解js闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实...

  • JavaScript学习笔记(4) 闭包详解(Closure A

    《JavaScript学习笔记(4) 闭包详解(Closure Are Not Magic)》 ---- 写在开头...

  • 闭包详解

    面试中常常会被问到闭包,每个人对闭包的理解也不一定一样,你说出来他想听的就行。 当遇到一个函数嵌套到另一函数中,内...

  • 闭包详解

    典型的闭包 典型的闭包是一个函数A内声明并返回一个函数B供外部使用,函数B内用到了A内部的局部变量或者形参。外界对...

  • Swift 中的 Sendable 和 @Sendable 闭包

    Sendable 和 @Sendable 闭包 —— 代码实例详解 Sendable 和 @Sendable 是 ...

  • swift中GCD的使用详情

    想看swift3.0使用GCD,请点击GCD详解 想看swift3.0闭包的使用和介绍,请点击Swift版闭包使用...

  • JavaScript 闭包详解

    闭包(Closure)是前端开发者经常会听到的一个概念,也是我们在求职面试中经常会遇到的题目之一。透过表象去理解闭...

  • javascript闭包详解

    跟我念 bi 闭 bao包 ,闭包的闭,闭包的包。。 闭包的简介 在计算机科学中,闭包(英语:Closure),又...

网友评论

      本文标题:闭包详解

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