function a(){return function b(){};}
a1=a();
a2=a();
alert(a1===a2) //false//------------------------------function b(){}
function a(){return b}
a1=a();
a2=a();
alert(a1===a2) //true第二个是引用,a1。a2是指向b的指针,这好理解
第一个是函数实例,返回的b这个函数不一样了.现在b在内存中什么怎么保存的,多复制了一次?为什么这个情况下就返回实例了而不是引用,这和闭包是不是有关联?能从编译原理的角度来谈谈吗?
a1=a();
a2=a();
alert(a1===a2) //false//------------------------------function b(){}
function a(){return b}
a1=a();
a2=a();
alert(a1===a2) //true第二个是引用,a1。a2是指向b的指针,这好理解
第一个是函数实例,返回的b这个函数不一样了.现在b在内存中什么怎么保存的,多复制了一次?为什么这个情况下就返回实例了而不是引用,这和闭包是不是有关联?能从编译原理的角度来谈谈吗?
解决方案 »
- js弹出另一个页面中的某个DIV
- 为什么大型网站都喜欢把js写在html中?
- jquery blockui在chrome下光标的问题
- 关于js中批量生成unicode编码显示中文的问题 \u怎么搞定?
- 求助一个jquery的问题!!!!
- ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●这个正则匹配啥? 看着都晕??????????????????
- JQuery获取ul li问题求大神指点一二
- 可怜的IE11
- 数组排序问题???
- JavaScript中是如何定义对象的方法的?
- 求助,关于htmlarea
- textarea 换行问题。。。
return function(){}每执行到这句 就建立一个新的函数 并返回var b=function(){};....
return b;每执行到这里就返回b函数
function a(){
function b(){}
return b;
}
这个也会创建函数,所以会产生两个函数。那再请问一下,这个函数在内存是怎么分配的?