JS new Function 的内存如何释放

Sword1002 2021-04-18 10:13:54
<script type="text/javascript">
var test = "{var temp = 'test'; this.testTemp='321', this.testFun = function(){return this.testTemp+temp;};"+
"return temp;"+
"}";


function newFunction(){
var fun = new Function(test);
var testCall = new fun();
testCall = null;
fun = null;
}
</script>


代码中函数每次执行一次,内存就会存在一个匿名函数String无法释放,这个请大牛看看,是否由什么方式可以释放这部分内存,或者替代的解决办法。

...全文
1053 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sword1002 2021-05-06
  • 打赏
  • 举报
回复
引用 3 楼 weixin_37226778 的回复:
test没有被标记清除吧,可以参考https://blog.csdn.net/qq_17550381/article/details/81126809
之前试过了,这样并没有释放这个字符串的内存; 不知道是什么问题。 test = ''; test = null; delete test;
weixin_37226778 2021-04-23
  • 打赏
  • 举报
回复
test没有被标记清除吧,可以参考https://blog.csdn.net/qq_17550381/article/details/81126809
Sword1002 2021-04-21
  • 打赏
  • 举报
回复
确实有效果,感谢!
问心剑阁 2022-04-18
  • 举报
回复
@Sword1002 楼主怎么解决的呢
丰云 2021-04-20
  • 打赏
  • 举报
回复
var fun = new Function(test); ==》》 window.fun = new Function(test); 这样改改看,没测试,不确定是否有效,感觉应该只会保留一个

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧