2

私はちょうどこの関数式に頭を悩ませようとしています。

関数宣言が含まれていると思われる関数式 ( p) を作成すると、関数宣言a()が undefined を返すようです。

var p;
p = function a() { return 'Hello' }

typeof p; // returns 'function'
typeof a; // returns 'undefined'

なぜこれが当てはまるのか、誰でも説明できますか?

また、私の用語もオフになっている場合はお知らせください。

4

3 に答える 3

5

関数宣言ではありません。たまたま名前が付いた関数式です。名前は変数を作成しませんが、オブジェクトで確認できます

quentin@raston ~ $ node
> var p;
undefined
> p = function a() { return 'Hello' }
[Function: a]
> typeof p; // returns 'function'
'function'
> typeof a; // returns 'undefined'
'undefined'
> p
[Function: a]
> p.name
'a'
>
于 2013-04-29T20:55:55.187 に答える
1

関数宣言が含まれていると思われる関数式 (p) を作成すると、

いいえ。関数宣言を「含まない」名前付き関数式です。関数式の名前は、関数のスコープ内の識別子 (関数自体を指す) として、および非標準のプロパティとして使用できます。name

于 2013-04-29T21:48:57.540 に答える