我写了两个函数,我认为应该没啥区别,但是执行结果却大有区别。哪位高手帮我解释一下,这两种函数调用为什么会不同?function close(){ var myline=100; return(function(){ return(myline++); }); } console.log(close()); //console output:// funciton() console.log(close()()); //console output:// 100 console.log(close()()); //console output:// 100 //closure example var copyclose=(function(){ var myline=300; return(function(){ return myline++; }); }()); console.log(copyclose()); //console output:// 300 console.log(copyclose()); //console output:// 301 console.log(copyclose); //console output:// function()
2 回答
杨魅力
TA贡献1811条经验 获得超6个赞
当然不一样了
copyclose定义的时候就执行了。myline
只定义了一次。
而close是没有执行的
执行close()的之后每次都会初始化 myline=300;
添加回答
举报
0/150
提交
取消