Contoh pertama Anda adalah ekspresi sedangkan contoh kedua adalah pernyataan . Mendefinisikan fungsi sebagai ekspresi memungkinkan lebih banyak fleksibilitas di mana definisi dapat terjadi, apa yang dapat Anda tetapkan, bahwa Anda dapat meneruskannya sebagai parameter, dll ...
Sebagai contoh:
SomeThing('abc', function(a,b) {return a*b;});
vs ...
function tmp(a,b) {
return a*b;
}
SomeThing('abc', tmp);
Contoh yang lebih kompleks akan menjadi sangat rumit tanpa sintaks ekspresi fungsi.
Lihatlah https://stackoverflow.com/questions/111102/how-do-javascript-closures-work