関数の引数に直接定義を書いた際の挙動について教えてください

順を追って説明していきます。
2023年11月5日
ユーザー
const calc = (num, func) =>  func(num);
console.log(calc(20, (num) => { 
  return num * 2; 
}));

は関数 calcfunc(num) が、

このように置き換わると思いますが、

const calc = (num, func) => {
   (num) => { return num * 2;}(20);
 }

calc ブロック内で、
(num) => { return num * 2;}(20);

(20) => { return 20 * 2;}(20);

(20) => { return 40;}(20);

このように () 中の 20 が (num) => {rerturn num * 2;} の引数 num に代入された後 num * 2 が実行され、その結果が calc の呼び出し元に返るのか、calc のブロック内の挙動がよく分かりません。

{ return 40;} の後ろに (20) があるので、なんだか違和感を感じてしまいます。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(7)