比如
function a(m,n){
  var q=1
  return m+n+q
}请问在没发生函数调用时,栈中存储a函数的地址? 堆中存储函数体是这样吗?还是内存中什么都没存?发生调用时栈和堆中又存储什么呢还有a可以理解为一个全局变量吗? 

解决方案 »

  1.   

    函数是引用类型,那应该就是放在Heap中的吧
    a是一个全局变量
      

  2.   

    我想问一下 是不是一个变量只声明,不赋值会不会在栈和堆里存位置啊
    比如 
    var m
    var n=function(x){return x*x } m和n 会占内存吗
      

  3.   

    var m  这样是一个Undefined类型 , 是一个基本类型,这样也会在栈中的var n=function(x){return x*x }
    n中放的是一个引用指向堆中的函数
      

  4.   

    还想借地儿问个内存泄露的问题
    function f(){
       var a=new Object()
    }
    f();
    请问这样写,内部变量a的计数器由0,变为 1,a这个局部变量不会被销毁,这就叫就造成了内存泄露了?