首頁 >web前端 >js教程 >javascript中的return和閉包函數淺析_javascript技巧

javascript中的return和閉包函數淺析_javascript技巧

WBOY
WBOY原創
2016-05-16 16:45:411201瀏覽


高手繞道!這跟閉包本身沒什麼大的關係,也不知道怎麼取標題,隨便湊了個數,望見諒!

今天一個剛學js的朋友給了我一段程式碼問為什麼方法不執行,程式碼如下:

複製程式碼 程式碼如下:

function mfunc(x) {


function mMunc(x) {  return x;
 }
}
alert(makefunc(0));


其實不是不執行,只是朋友的意思這裡alert出來的應該是“0”,而不是function (){return x;}。
不是腳本寫錯了,只是沒搞懂return,從目前函數退出,並從那個函數回傳一個值。如果傳回的是一個函數,那麼回傳的也是函數本身。
可以這樣修改上面的程式碼,就是alert(makefunc(0)()):複製程式碼
程式碼如下:


function makefunc(x) {
 return (function (){
  return x;
 })();
}
)());


如果要回傳函數執行的結果那麼首先要讓這個函數執行,例如:複製程式碼
程式碼如下:


function makefunc(x) {
 return (function (){
  return x;
 })();
}
);

這裡有匿名函數,複製程式碼
程式碼
複製程式碼


程式碼
(function (){
 return x;
})();複製程式碼


程式碼如下:

(function( x , 🎜>(function( x , ){ alert( x y);})(2 ,3 );
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn