1
我觉得这段代码可能会导致内存泄漏:在Javascript中可以绑定函数导致内存泄漏?
function foo(arr, value){
arr.push(value);
console.log(arr);
}
var bar = foo.bind(null, []);
bar('first call');//output: ['first call']
//The next thing that confused me is happened,
//'first call' has been hold in 'arr' after bar('first call') execute:
bar('second call');//output: ['first call', 'second call'];
我想知道为什么GC不是第一功能之后的第一个函数的参数的参考集合已被执行?
我以为每次执行bar
函数时,形式参数arr
都应该初始化为[]
。
arr/[]
与变量arr2
之间的区别是什么?
var arr2 = [];
function foo2(value){
arr2.push(value);
console.log(arr2);
}
var bar2 = foo2.bind(null);
bar2('first call 2');
bar2('second call 2');
在此先感谢!
非常感谢!我想我开始明白“标签/指针”的含义......它只是数据地址的“参考”,忽略“参考”指向的位置......第一个和第二个条形函数调用具有相同的第一个参数的“指针”。再次感谢!!! –