6

JavaScript のコードはどの程度正確に実行されますか? つまりどういう順番で?次のような関数を宣言した場合、実行順序に違いはありますか。

function render() {
    // Code here
}

これの代わりに:

var render = new function(){
    // Same code here
}    

JavaScript は、イベント ハンドラーによって呼び出されたかどうかに関係なく、スクリプト ファイルで定義された関数を実行しますか? (例onload=function())。

最後に、関数が別の関数で定義されている場合、親関数が呼び出されると、下位の関数も呼び出されますか? 例えば

function a(){

    function b(){
        // code
    }

    function c(){
        //code
    }

}

JavaScript での実行順序を具体的に理解しようとしています。

4

3 に答える 3

4

関数宣言は巻き上げられます (したがって、コードの早い段階で呼び出されてから定義されます)、関数ステートメントはそうではありません。

JavaScript は、イベント ハンドラーによって呼び出されたかどうかに関係なく、スクリプト ファイルで定義された関数を実行しますか?

関数は呼び出されるときに呼び出されます。何かがtheFunction続いているため()(おそらく引数付き)、またはイベント ハンドラーになっているためです。

onload="function"

それがJSの場合、関数を期待するものに文字列を割り当てます。それが HTML の場合は()、関数を呼び出す必要があります。

最後に、関数が別の関数で定義されている場合、親関数が呼び出されると、下位の関数も呼び出されますか?

いいえ。関数は、呼び出されたときにのみ呼び出されます。関数を別の関数内で宣言すると、そのスコープが制限されます。

于 2011-07-21T13:30:51.873 に答える
4
var render = new function(){
  // same code here
}

キーワードはnew新しい関数を作成しません。関数を実行して新しいオブジェクトを作成します。したがって、これは実際にはメソッドの本体を実行し、代わりにオブジェクトを返します。

関数がいつ解析されてスコープに追加されるかを尋ねる場合、それは実装固有ですが、すべての関数はスコープの先頭に持ち上げられ、通常はコードが実行される前に解析されます。

関数は 、呼び出しによって呼び出した場合にのみ実行されますf()

于 2011-07-21T13:29:28.407 に答える
0

関数を宣言すると、呼び出されるまで実行されません (これは、onload やその他のイベントで宣言されたものにも当てはまります)。

ネストされた関数の場合、トップレベル関数が呼び出されたときに、それを含む関数がそれらを呼び出すまで、それらは自動的に実行されません。

于 2011-07-21T13:31:56.803 に答える