js 函數中的 return+匿名函數


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

代碼如下:

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

alert(makefunc(0)); 
 
結果是:function (){return x;}不是0

不是腳本寫錯了,只是沒搞懂return,從當前函數退出,並從那個函數返回一個值。如果返回的是一個函數,那么返回的也是函數本身。 
可以這樣修改上面的代碼,就是alert(makefunc(0)()): 

 

如果想要執行alert(makefunc(0))返回的結果是0,可以這么改寫;例如:

代碼如下:

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

alert(makefunc(0)); 


這里有一個匿名函數, 

代碼如下:

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


在第一個括號內是匿名函數,第二個括號用於調用該匿名函數,您可以在第二個括號中傳入所需的參數。例如: 

代碼如下:

(function( x , y){ 
 alert( x + y); 
})(2 ,3 ); 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM