2023年11月6日解決済み

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

ユーザー
const calc = (num, func) =>  func(num);
console.log(calc(20, (num) => { 
  return num * 2; 
}));

は関数 calc の func(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) があるので、なんだか違和感を感じてしまいます。

スタッフ

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

プレミアムプランとは?