1

関数を定義するとき、次の 2 つの方法の違いは何ですか。

  1. 関数 t1() {}

  2. var t2 = 関数() {}

t1 は関数自体で、t2 は関数への参照ですか?

4

1 に答える 1

-2

最初のものは、これを行うことと同等の function ステートメントを使用しています。

var t1 = function t1() {};

これはt2の例と非常によく似ていますが、1 つの違いはt2に名前が付けられていないことです。これは、 t2変数に格納される無名関数です。


名前付き関数ステートメント( t1など)を使用する場合、var 宣言はスコープの先頭に引き上げられることに注意してください。関数が定義される前に関数を呼び出しているように見えても、この例
が機能するのは そのためです。関数はsayHello変数の上に持ち上げられるため、使用できます。

反対側はこの例で、「foo」関数が一番上に上げられないため、 t2の例が機能しないことを示しています。

于 2013-09-14T07:43:51.227 に答える