Javascript 理解函数回调&;内存泄漏

Javascript 理解函数回调&;内存泄漏,javascript,memory-leaks,callback,Javascript,Memory Leaks,Callback,我想了解这些函数是否会泄漏一些内存 示例1 function setUserData(data, cb){ // do some magic here if(cb){ cb(); delete cb; // OR cb = null; } } setUserData('test', reloadUserData); 示例2 let setUserData = function update(data, cb){ // do some mag

我想了解这些函数是否会泄漏一些内存

示例1

function setUserData(data, cb){
 // do some magic here
  if(cb){
     cb();
    delete cb; 
    // OR 
    cb = null;
   }
 }

setUserData('test', reloadUserData);
示例2

let setUserData = function update(data, cb){
// do some magic here
  if(cb){
     cb();
     cb= null;
   }
  setUserData = null;
}

setUserData('test', reloadUserData);

调用cb后是否应该使cb对象无效?

内存中的
cb
变量不会产生内存泄漏问题。此外,对null的赋值并不是“清除”内存中
cb
的当前值。
cb
是一个局部变量,函数结束时它会被销毁,因为这里没有闭包。重要的是调用方函数的生命周期。在javascript函数中,函数是第一类对象,它们的行为与作为参数传入的任何其他对象一样,您可以修改其中的成员或向其中添加新成员,它将反映在原始对象中,但删除主对象本身毫无意义