资讯专栏INFORMATION COLUMN

关于js中的闭包问题

icyfire / 847人阅读

摘要:闭包解决的问题获取到函数内部的变量让变量不会随着函数执行完毕就销毁而是保存在内存中模拟私有变量闭包产生的问题容易造成内存泄漏,保存的多了,却没有释放的指向问题,在闭包里,指向的是关于闭包的小东西比如注释部分省了外壳,

闭包概念:
能够访问另一个函数作用域的变量的函数,来个栗子

为何son函数可以访问到father函数的变量?
前提知识:

    js的数据基本类型:Number boolean String Null Undefined Symbol
    复杂类型:Object

基本数据类型放在的 “栈” 中 ,负责数据类型是放在“堆”中,对于js,存储基本数据类型采用的是 键:值来存的。
来个手撸的图


简单的说在使用基本数据类型的时候,使用的值,在使用对象的时候使用其实是一个地址。
function也是一个Object的分支,
在函数执行的时候,先进行预编译的过程 ,所以先创建father的AO与GO,对于son,先创建自己的AO与GO,当自己的找不到的时候,会从父级的去查找。
随着son执行完毕,son的执行环境被销毁,接着执行fn(),然后执行环境被销毁,所以只会剩下全局的环境,所以son函数还在的,虽然执行环境(AO被销毁)。

闭包解决的问题:
1、获取到函数内部的变量
2、让变量不会随着函数执行完毕就销毁而是保存在内存中
3、模拟私有变量...........
闭包产生的问题
1、容易造成内存泄漏,保存的多了,却没有释放
2、this的指向问题,在闭包里,this指向的是window

关于闭包的小东西
比如 注释部分省了外壳,

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105867.html

相关文章

  • JS 中的闭包是什么?

    摘要:大名鼎鼎的闭包面试必问。闭包的作用是什么。看到闭包在哪了吗闭包到底是什么五年前,我也被这个问题困扰,于是去搜了并总结下来。关于闭包的谣言闭包会造成内存泄露错。闭包里面的变量明明就是我们需要的变量,凭什么说是内存泄露这个谣言是如何来的因为。 本文为饥人谷讲师方方原创文章,首发于 前端学习指南。 大名鼎鼎的闭包!面试必问。请用自己的话简述 什么是「闭包」。 「闭包」的作用是什么。 首先...

    Enlightenment 评论0 收藏0
  • js知识梳理6:关于函数的要点梳理(2)(作用域链和闭包)

    摘要:在此例中,在匿名函数被返回后,它的作用域链初始化为包含函数的活动对象和全局变量对象。函数在执行完毕后,其活动对象也不会被销毁,因为匿名函数的作用域链仍然在引用这个活动对象,结果就是只是的执行环境的作用域链会被销毁,其活动对象会留在内存中。 写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,...

    aristark 评论0 收藏0
  • 详解js中的闭包

    摘要:定义函数的时候,为什么的值重新从开始了因为又一次运行了函数,生成一个新的的活动对象,所以的作用域链引用的是一个新的值。 前言 在js中,闭包是一个很重要又相当不容易完全理解的要点,网上关于讲解闭包的文章非常多,但是并不是非常容易读懂,在这里以《javascript高级程序设计》里面的理论为基础。用拆分的方式,深入讲解一下对于闭包的理解,如果有不对请指正。 写在闭包之前 闭包的内部细节,...

    chaosx110 评论0 收藏0
  • JavaScript深入浅出

    摘要:理解的函数基础要搞好深入浅出原型使用原型模型,虽然这经常被当作缺点提及,但是只要善于运用,其实基于原型的继承模型比传统的类继承还要强大。中文指南基本操作指南二继续熟悉的几对方法,包括,,。商业转载请联系作者获得授权,非商业转载请注明出处。 怎样使用 this 因为本人属于伪前端,因此文中只看懂了 8 成左右,希望能够给大家带来帮助....(据说是阿里的前端妹子写的) this 的值到底...

    blair 评论0 收藏0
  • 前端基础

    摘要:谈起闭包,它可是两个核心技术之一异步基于打造前端持续集成开发环境本文将以一个标准的项目为例,完全抛弃传统的前端项目开发部署方式,基于容器技术打造一个精简的前端持续集成的开发环境。 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。 不论你是javascript新手还是老鸟,不论是面试求职,还是日...

    graf 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<