2016-06-27 2 views
0

他の人のコードを読むとき、この種の関数宣言を何度も見ました。この種の関数宣言はいつ使用しますか?

var foo = function bar() { 
    console.log("Some text"); 
}; 

そして、私はこの結果を得ました。 bar以来

foo(); // "Some text" 
bar(); // Uncaught ReferenceError: bar is not defined(…) 

は、私はそこbarを書くの目的との違いは、私はbarを省略して、それを書いた場合のだろうか、未定義のままになります。しかし、そのような機能を人々が作っているのは、ある条件や理由があるのだろうかと思います。

このような関数はいつ書くのですか?

+1

関数がエラーをスローすると、スタックトレースは関数が匿名ではなく関数バーで発生したことを示します –

答えて

1

var foo = function() {}を記述すると、名前がない関数である匿名関数(foo)を宣言します。

var foo = function bar() {}と記述すると、fooという名前の変数が宣言され、関数はbarとなります。これはデバッグに便利です。エラーが発生すると、それはfunction bar()にあると表示されます。

ファンクション名は関数内でのみ使用できるため、bar()を呼び出すとエラーが発生します。

関連する問題