当前位置:首页 > 每日看点 > 正文内容

为什么JS闭包占用内存远比普通JS对象多?

卡卷网11个月前 (01-13)每日看点137

list.map(v => ({ v }))是创建了n个Object,而list.map(v => () => v)是创建了n个Function,即使不是闭包而是简单的list.map(v => () => {}),后者也比前者占用的内存多。list.map(v => () => v)时,v这个局部变量会被捕获形成一个闭包,需要额外空间存储,map函数执行n次后实际上此时是有n个闭包。

普通 js 对象带函数list.map(v => ({ v, f: fun_body }))仅仅是创建n个对象后多存储了个f: fun_body属性,略多出来的开销应该都是f属性,都指向fun_body函数。这个应该跟闭包的实现没有关系吧。

const f = (v) => ({getV: () => v, add: () => v++}) const {add, getV} = f(1) console.log(getV()) // 1 add() console.log(getV()) // 2

看上面的代码,闭包可以改变捕获的局部变量的值,而const f = v => v这种普通传参形式的,每次执行过后v局部变量都被销毁了。

个人见解,不一定正确。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/9084.html

分享给朋友:

相关文章

200+ 工具,这个网站堪称最强

200+ 工具,这个网站堪称最强

作为一个乱七八糟什么都懂一点的电脑小白,日常经常被别人增加些临时任务,比如PDF转Word,提取视频里的音频,图片加个边框。之前,电脑里安装了不少这类的软件,虽然能满足要求,但装的多了,总感觉电脑卡卡的。最近发现了一个超强的在线工具网站,首...

提升自己最快的方式是什么?

提升自己最快的方式是什么?

1.稻盛和夫说过:“改变自己最快的方法就是做自己害怕的事,不敢做的事,认为自己做不到,觉得不可能的事。如果在自己的舒适区待久了,就会丧失斗志,如果想快速的改变,可以坚持去做一些对自己有益的事。2.早睡早起,坚持运动保持旺盛的精力,人生拼到最...

夸克浏览器受欢迎的原因是什么?

夸克浏览器受欢迎的原因是什么?

这是可以说的嘛~哈哈,它比较吸引我的几点是:安全无广、页面简洁、功能丰富、反应速度快......首页页面支持自定义,喜欢什么样子都可以自己调整,没有花里胡哨的各种资讯推送,热搜日报整理归纳好,想看再点开查看,看着舒适度直接拉满!实用日常工具...

被网络诈骗了,钱还能追得回来吗?

我刷单被骗,当时不知道怎么办在百度上找个律师说他们能追回,还说不用报警,我傻的就信了,支付了费用签合同,我还是不信他们,报警了,报警没几天警官就连系我追回一笔钱让我注意银行卡到账通知,又过几天我第二笔钱到账了,律师说是他们追回的,要我支付后...

是什么原因让你一定要用 iPhone?

是什么原因让你一定要用 iPhone?

1、不用清理内存,iPhone真的可以开机用上一年,你根本不用关注期间打开过什么软件。2、支持的频段足够多,天天在国内走动倒是无所谓,很多Android手机一旦出去了,就会发现很多运营商接入都是问题,更不用说各种本土化的服务了。3、屏幕素质...

怎样使自己处于高能量状态?

1、不要习惯性的回顾过去那些让你尴尬和犯了错误的事情,不要嫌弃自己蠢。学会原谅自己,当你不断回忆那些错误和囧事的时候,告诉自己:自己确实做错了,下次不要再犯即可,不需一遍遍的回忆。这件事情已经发生,不要再一遍遍的折磨自己,不断回忆一点好处没...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。