有何存在必要季稳?
大概是為了引出閉包而設(shè)計(jì)擅这。
例子?
如下面這個(gè)例子景鼠,一個(gè)匿名函數(shù)作為了函數(shù)a()的返回值仲翎。 匿名函數(shù)會(huì)返回bb。然后我們直接調(diào)用函數(shù)a铛漓。 結(jié)果是aa溯香。 匿名函數(shù)并沒有發(fā)揮作用,那如何調(diào)用該匿名函數(shù)呢浓恶?
<script>
function a(){
alert('aa')
return function(){
alert ('bb')
}
}
a()//aa
</script>
如下方法.這樣的話結(jié)果就是aa玫坛,bb了。
<script>
function a(){
alert('aa')
return function(){
alert ('bb')
}
}
a()()//aa bb
</script>
或者 首先
<script>
function a(){
alert('aa')
return function(){
alert ('bb')
}
}
newFun=a();
newFun();//aa bb
</script>
試著與如下嵌套函數(shù)對(duì)比
function a(){
alert('aa')
function abs(){
alert ('bb')
}
abs();
}
a();//aa bb
結(jié)果是一樣的包晰,實(shí)現(xiàn)方法是不一樣的湿镀,使用return時(shí)炕吸,內(nèi)存函數(shù)的調(diào)用是在外層函數(shù)的外面被調(diào)用的。而不適用return函數(shù)時(shí)勉痴,內(nèi)存函數(shù)只能在內(nèi)層函數(shù)之外赫模,外層函數(shù)之內(nèi)被調(diào)用。
總結(jié)
js函數(shù)作為返回值可以實(shí)現(xiàn)內(nèi)層函數(shù)在外層函數(shù)之外被調(diào)用蒸矛!