为了账号安全,请及时绑定邮箱和手机立即绑定

js的闭包和回调到底怎么才会造成真的内存泄漏呢?

js的闭包和回调到底怎么才会造成真的内存泄漏呢?

江户川乱折腾 2019-04-08 11:19:11
最近看了一些分享的js内存泄漏典型案例,感觉这种代码以前一直写,现在不留意的话也一直这么写,到现在发现写代码的时候老怕闭包和回调了,在前端出现泄露的话问题还不算非常严重,但如果后端使用nodejs写出现内存泄露的话,这可会让服务崩溃。为了严谨性,到这里问下各位技术达人。//一下是angularjs的controller模拟function($scope){$scope.todo1=todo1;$scope.todo2=todo2;$scope.todoAll={todo1:todo1..}}像这样的回调其实就是一种闭包,那么这个时候会造成内存泄露吗?再看这里functionfoo($scope){vartext='youclickme!!!';varclickHanlder=function(){alert(text);}$scope.clickHanlder=clickHanlder;}var$a={}foo($a);$a.clickHanlder();//这里的text被提到全局的作用域了,这种算内存泄露吗?如果$a是DOM呢?vargloablObject={}varaddCallback=function(hanlder){//这样的闭包回调有问题吗?varvalue=function(){vartemp;if(true){temp=newValue(true);}else{temp=newValue();}returntemp;}hanlder(value);}addCallback(function(value){//1这里有问题吗?globalObject.ref=value;//2这里呢?globalObject.ref=function(nv){alert(nv.todo(value));}});还有//下面的代码大致模拟一下angularjs的写法fn(function($add){varpro1='pro1';varpro2='pro2';returnfunction(){$add(pro1,pro2);}});类似这些写法很经常,现在遇到闭包和回调我都分不出我写的代码会不会造成内存泄露了,js坑很大啊!!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 837 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号