⊗jsPmFNOIP 250 of 505 menu

JavaScriptにおける外部関数と内部関数のパラメータ

外部関数と内部関数の両方がパラメータを受け取るようにしてみましょう:

function test(num) { function func(localNum) { console.log(localNum); } }

外部関数のパラメータを内部関数の呼び出しに渡します:

function test(num) { function func(localNum) { console.log(localNum); // 1を出力 } func(num); //!! パラメータを渡す } test(1); // 数値をパラメータとして渡す

結果として、内部関数では、親関数からの外部変数である変数numと、 内部関数のローカル変数である変数localNumの両方にアクセスできます。

これらの両方の変数は同じ値を持ちます:

function test(num) { function func(localNum) { console.log(num); // 1を出力 console.log(localNum); // 1を出力 } func(num); } test(1);

それらの違いは次のとおりです:もし内部関数で変数numを変更すると、 それは外部関数でも変更されます:

function test(num) { function func(localNum) { num = 2; // 変数numを変更 } func(num); // パラメータを渡す console.log(num); // 2を出力 } test(1); // 数値をパラメータとして渡す

一方、変数localNumはローカルです。 その変更は外部関数に何の変化も引き起こしません。 さらに、変数localNum自体も内部関数の外からは見えません:

function test(num) { function func(localNum) { localNum = 2; // 変数numを変更 } func(num); // パラメータを渡す } test(1); // 数値をパラメータとして渡す

コードを実行せずに、コンソールに何が出力されるかを判断してください:

function test(num) { function func(localNum) { console.log(localNum); } func(num); } test(1);

コードを実行せずに、コンソールに何が出力されるかを判断してください:

function test(num) { function func(localNum) { console.log(localNum); } func(num + 1); } test(1);

コードを実行せずに、コンソールに何が出力されるかを判断してください:

function test(num) { function func(localNum) { console.log(num); } func(num + 1); } test(1);

コードを実行せずに、コンソールに何が出力されるかを判断してください:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(num); } test(1);

コードを実行せずに、コンソールに何が出力されるかを判断してください:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(localNum); } test(1);

コードを実行せずに、コンソールに何が出力されるかを判断してください:

function test(num) { function func(localNum) { num = 2; } func(num); console.log(num); } test(1);
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否