最近看了一些分享的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坑很大啊!!
添加回答
举报
0/150
提交
取消
