В JavaScript почему выражение функции должно быть в скобках для вызова функции
Я пробовал звонить
function(v){alert(""+v);}(4);
Но предупреждение вышло
function statement requires a name
Когда я позвонил, используя имя
function fname(v){alert(""+v);}(4);
Ничего не случилось
Но когда я позвонил, используя скобки,
(function(v){alert(""+v);})(4);
and
(function fname(v){alert(""+v);})(4);
Оба показали предупреждение на экране. Почему все это произошло?