javascript中较大字符串的内存泄漏

javascript中较大字符串的内存泄漏,javascript,memory-leaks,base64,out-of-memory,webpage-rendering,Javascript,Memory Leaks,Base64,Out Of Memory,Webpage Rendering,我正在向javascript函数发送base64字符串 但当我一次又一次地调用它时,它会导致内存泄漏。 我的直觉是存储在javascript变量中的值没有被正确释放 function showResource(data){ //everything commented out. } 我从匿名函数调用该函数,如下所示。匿名函数是从iOS本机端调用的,它将base64发送到网页 function (data){ showResource(data); } 假设JS是垃圾收集语言,所以这个内

我正在向javascript函数发送base64字符串 但当我一次又一次地调用它时,它会导致内存泄漏。 我的直觉是存储在javascript变量中的值没有被正确释放

function showResource(data){
//everything commented out.
} 
我从匿名函数调用该函数,如下所示。匿名函数是从iOS本机端调用的,它将base64发送到网页

function (data){
  showResource(data);
}
假设JS是垃圾收集语言,所以这个内存泄漏问题不应该发生,但它确实发生了

当内存泄漏发生时,它会被iOS杀死。请看屏幕截图


此问题与

有关,可能是因为您将参数从“父”函数传递到另一个函数。我知道它在一些JS引擎中引起了问题(肯定是影响了性能,我不确定是否存在内存泄漏),尝试将
数据
分配给匿名函数中的新变量,然后将引用传递给
showResource
如何将其作为引用传递?AFAIk js仅支持按值传递。js pas数字和字符串作为值,而对象作为引用。我的意思是做一些类似于
function(data){var x=data;showResource(x);}
的事情,这就是我发现它的地方(第3.2节):如果泄漏发生在showResource为空的情况下,数据可能会被关闭,除非提供完整的数据生命周期,否则我们无法判断。例如,如果数据是由ajax获取的,那么还需要确保ajax对象没有被保留。