2017-07-08 4 views
0

関数リテラル中の関数名が意味を持たないのはなぜ私は、関数リテラルJavaScript、関数名が関数リテラルで意味を持たないのはなぜですか?

  1. のためのいくつかの疑問を持っていましたか?
  2. なぜ重要ではありませんか?
  3. 関数リテラルの場合に関数名を使用して呼び出すと、関数が呼び出されないのはなぜですか?名前bは意味を持ちませんが、いないのはなぜ

    var a = function b(){ 
         //some code 
         } 
    b(); //Doesn't work 
    

私はJavaScriptと初心者のために慣れていないので、どんな助力にも感謝します!

+0

参照:https://stackoverflow.com/documentation/javascript/186/functions/4877/named-functions#t=201707081325420732181およびhttps://stackoverflow.com/documentation/javascript/186/functions/726/匿名関数#t = 201707081325420732181 – Nisarg

+0

'a.name ==" b "'確かに意味があります – Bergi

答えて

0

名前bは、内部機能のみが意味を持ちます。外にあなたはa経由で機能を呼び出す必要があります。

+0

Ikですが、それはなぜですか!それは私の質問です!なぜ意味がないのですか?私は理由を知りません... –

+0

@MohammedShoaibなぜなら、それは式であり、 'var'や' function'のように名前を宣言しないからです。それはちょうどそれが動作する方法です。 – Bergi

+0

匿名関数を宣言し、この関数がそれ自身のプロパティにアクセスできる必要がある場合に便利です。しかしどうですか?名前付き関数宣言は、この場合に役立ちます。例: 'var a = function b(){b.prop = 42; } '。 'b'という名前のプロパティはアクセスできない。 – mentalMedley

関連する問題