1

以下の最初のスニペットでは、私の理解に基づいて、関数を作成し、それを変数に割り当てています。しかし、それは関数がその変数の名前を取るということですか?

var aFunc = function(){};

これが関数という名前であることは知っています。

function bFunc(){};
4

5 に答える 5

3

いいえ。

最初の例では、無名関数を作成し、それを "aFunc" に割り当てています。

2 番目の例では、関数を宣言して bFunc と呼びます。

2 つの最も顕著な違いは、割り当てた行の後まで "aFunc" を呼び出すことができないことです。

于 2013-04-11T01:57:00.540 に答える
3

いいえ、関数は「変数の名前を取得」しません。変数は無名関数への参照を保持します。関数自体はまだ匿名です。

ただし、これは最終的にほとんど違いがないことに注意してください。この関数参照は、割り当てられると、通常の名前付き関数とまったく同じように扱うことができます。実際、違いはほとんどないため、名前付き関数も関数参照を保持する変数のように扱うことができます。

function foo() { }
foo();
foo = 'bar';
alert(foo); // bar
于 2013-04-11T01:57:25.833 に答える
2

いいえそうではありません。最初のステートメントの右側はFunction Expressionです。変数に割り当てない限り、匿名です。

割り当てた後は、宣言された関数として使用できます。

関数宣言の詳細については、この質問を参照してください

于 2013-04-11T01:57:08.410 に答える