我是否需要删除 JavaScript 中回调中使用的局部变量?
Do I need to delete local variables used in a callback in JavaScript?
诚然,这源于我对闭包缺乏深刻的理解。我发现自己有内存泄漏,想知道这段代码是否与它有关。似乎没有我可以在 documentation 中为这些类型化数组手动调用的析构函数:
myMethod: function() {
// Create a new array on the heap
var someData = new Uint8Array(32);
someData[0] = 1;
someData[1] = 2;
...
transferSomeData(someData.buffer, function(succeeded) {
// Dispose of the array
someData = []; // HOW TO DELETE?
});
}
不,您不需要删除它们。当回调函数退出时,这些值将变成垃圾,因为它们不可访问,垃圾收集器将回收它们。
诚然,这源于我对闭包缺乏深刻的理解。我发现自己有内存泄漏,想知道这段代码是否与它有关。似乎没有我可以在 documentation 中为这些类型化数组手动调用的析构函数:
myMethod: function() {
// Create a new array on the heap
var someData = new Uint8Array(32);
someData[0] = 1;
someData[1] = 2;
...
transferSomeData(someData.buffer, function(succeeded) {
// Dispose of the array
someData = []; // HOW TO DELETE?
});
}
不,您不需要删除它们。当回调函数退出时,这些值将变成垃圾,因为它们不可访问,垃圾收集器将回收它们。