摘要:闭包解决的问题获取到函数内部的变量让变量不会随着函数执行完毕就销毁而是保存在内存中模拟私有变量闭包产生的问题容易造成内存泄漏,保存的多了,却没有释放的指向问题,在闭包里,指向的是关于闭包的小东西比如注释部分省了外壳,
闭包概念:
能够访问另一个函数作用域的变量的函数,来个栗子
为何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知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,...
摘要:理解的函数基础要搞好深入浅出原型使用原型模型,虽然这经常被当作缺点提及,但是只要善于运用,其实基于原型的继承模型比传统的类继承还要强大。中文指南基本操作指南二继续熟悉的几对方法,包括,,。商业转载请联系作者获得授权,非商业转载请注明出处。 怎样使用 this 因为本人属于伪前端,因此文中只看懂了 8 成左右,希望能够给大家带来帮助....(据说是阿里的前端妹子写的) this 的值到底...
阅读 1097·2021-09-22 15:19
阅读 1713·2021-08-23 09:46
阅读 2238·2021-08-09 13:47
阅读 1414·2019-08-30 15:55
阅读 1421·2019-08-30 15:55
阅读 1980·2019-08-30 15:54
阅读 2806·2019-08-30 15:53
阅读 718·2019-08-30 11:03