哪位大佬知道,关于在javascript里function的两种写法有何不同吗?

我写了两个函数,我认为应该没啥区别,但是执行结果却大有区别。哪位高手帮我解释一下,这两种函数调用为什么会不同?

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()

MYYA
浏览 311回答 2
2回答

杨魅力

当然不一样了copyclose定义的时候就执行了。myline只定义了一次。而close是没有执行的执行close()的之后每次都会初始化 myline=300;
打开App,查看更多内容
随时随地看视频慕课网APP