2016-11-09 44 views
-1
(function funcName(params){ 
    console.log("fucName = "+params); 
    }); 
    funcName("Function"); 

//我得到的錯誤中鉻未捕獲的ReferenceError:了funcName沒有定義(...)在javascript什麼差異(函數名(){})和funtion名(){}

function funcName(params){ 
    console.log("fucName = "+params); 
    }; 
    funcName("Function"); 

//這可以運行

+1

_i得到錯誤,這是不同之處。你可能會對[在函數(){...})()「?](http://stackoverflow.com/q/2421911/2025923),[ JavaScript函數聲明語法:var fn = function(){} vs function fn(){}](http://stackoverflow.com/q/336859/2025923) – Tushar

+1

可能的重複[什麼是(function(){} )()構造在JavaScript?](http://stackoverflow.com/questions/8228281/what-is-the-function-construct-in-javascript) – Dymos

+0

謝謝,我知道「(function(){})() 「是立即調用函數表達式,但爲什麼我找不到函數 –

回答

2

第一個是括號內的「named function expression」。函數表達式不會添加到當前範圍,因此您將無法按照您嘗試執行的方式調用該函數。第二個是「function declaration」。函數聲明被添加到當前作用域,這就是爲什麼你可以調用它。

第二個鏈接應該告訴你你需要知道的關於這兩個構造的一切。

相關問題