2014-03-19 77 views

回答

1
function a(m) { 
    return function b() { 
     alert(m) 
    } 
} 

a('10'); 

console.log(typeof a); 
// function 
console.log(typeof a('10')); 
// function 

這是因爲,當調用a,它從它返回另一個函數。所以,該功能必須被明確調用。

這就是我們爲什麼要做a('10')()

如果這是你太混亂了,然後剛落內部函數,並在a函數本身調用alert,這樣

function a(m) { 
    alert(m); 
} 

如果警告是在函數內部做的唯一任務,你最好了與直接執行alert,這樣

alert(m); 
+0

我喜歡帶一些說明的答案。謝謝 – Carlos

1

重新運行的自調用函數

function a(m){ 
    return (function b(){ 
     alert(m) 
    })(m) 
} 

現在

a('10') // 10 
-1

你不需要B功能只是在一個警報。或者,如果您確實將括號轉移到返回函數末尾

+0

我的問題是調用子函數 – Carlos

+0

你是正確的,修復它 – knightsb