前提
お世話になっております。
即時関数について学んでいる際、例題のコードの流れがわからなかった為質問させていただきます。
javascript
1let c = (function() { 2 3 console.log('called');//called 4 5 let privateVal = 0; 6 let publicVal = 10; 7 8 function privateFn() { 9 console.log('privateFn is called'); 10 } 11 function publicFn() { 12 console.log('publicFn is called: ' + privateVal++); 13 } 14 15 return { 16 publicVal, 17 publicFn 18 }; 19})() 20 21c.publicFn();//publicFn is called: 0 22c.publicFn();//publicFn is called: 1 23c.publicFn();//publicFn is called: 2 24c.publicFn();//publicFn is called: 3 25 26console.log(c.publicVal);//10
質問
c.publicFn();の一つ目の実行で何故 publicFn is called: 0 が出力されるのか
わかりません。
function publicFn() {
console.log('publicFn is called: ' + privateVal++);
}
の記述で1が加算されているのに何故0なのでしょうか。//後置演算ということが抜けておりました。ありがとうございます。
またc.publicFn(); を呼び出すたびに加算される仕組みが、理解できません。
自分がどういった流れで理解しているかまとめますので少々お待ちください。申し訳ございません。
回答4件
あなたの回答
tips
プレビュー