使用这段简单的代码
function get_data(callback)
{
connection.query(`GET QUERY;`, function(error, row) {
if(error) throw error;
var data = row;
...
...
return callback(data);
//Never setting to null data
});
}
以后再调用这个函数:
function handle_data(){
...
get_data(function(data){
var some_variable = data;
//do some stuff
...
//I dont set some_variable to null here either.
});
}
connection
来自mysql
包。
所以我想知道我是否在创建内存泄漏,因为我从未将第一个函数中的数据设置为null。
答案 0 :(得分:0)
您的代码中没有内存泄漏。数组和对象变量通过'引用副本传递。在javascript中,它一直指向同一个对象。只要有效引用在程序范围内,对象就会保留在内存中,否则就会被清除。对于原始变量,当它不再在范围内时会被清除。 但是,如果要打开mysql连接而不关闭它,一旦完成作业,就可能导致连接泄漏。