たくさんのおかげでここのは、それがどのように実行するかを見てみましょうあなたは
1. function one(numOneIn) {
2. two(numOneIn * 3);
3. document.write(numOneIn);
4. }
5. function two(aNumberIn) {
6. document.write(aNumberIn);
7. }
8. function three(numIn) {
9. one(numIn * 2);
10. document.write(numIn);
11. }
12. three(5);
を掲載しましたコードの合理的にフォーマットされたバージョンです。
最初の数グループ(1-4,5-7,8-10)はfunction
の定義です。呼び出されるまで実行されません。
実行する最初の行はthree(5)
(12行目)です。
それはnumIn
パラメータに5
の値を通る線8
にthree
関数を呼び出します。
実行する次の行は、one(numIn * 2)
(9行目)です。
関数は、1
のパラメータに10
(5 * 2)の値を渡します。
実行する次の行は、two(numOneIn * 3)
(2行目)です。
5
のtwo
関数は、パラメータに30
(10 * 3)の値を渡します。
実行する次の行は、aNumberIn
が文字列にキャストされるため、'30'
をDOMに追加するdocument.write(aNumberIn)
(行6)です。
行7は、two
の呼び出しを終了します。
実行する次の行はdocument.write(numOneIn)
(行3)で、が文字列にキャストされるため、'10'
がDOMに追加されます。
行4は、one
の呼び出しを終了します。
次の行はdocument.write(numIn)
(行10)で、numIn
が文字列にキャストされているため、'5'
がDOMに追加されます。
行11は、three
の呼び出しを終了します。
スクリプトの実行が終了しました。
DOMの最終的な状態は、'30105'
の文字列です。
としてそれを書き換え
document.write (numOneIn);
のそれは実際には "30" + "10" + "5" これらの数字は私かかわらから来るのか – Reduですスタックオーバーフローはプロと熱心なプログラマを対象としているので、JavaScriptのチュートリアルを検索して言語を最初に学ぶ方がよいでしょう。 – jonathonhub
@jonathonhubすべてのプログラマーがいつものように騒がしいということは残念ではありませんが、SOユーザーがコードの読み方を知っていることが一般的に予想されます。 – zzzzBov