Javascript nomeada função como uma expressão

Código Javascript

<code>var d = function c() { console.log(c); };
d(); // function c() { console.log(c); }; 
c(); // Reference Error
</code>

Eu entendo o conceito de içamento variável onde as declarações de variáveis ​​e definições de funções são içadas para o topo do escopo existente. Também a definição de função em expressões de função não é içada.

Então, acima será

<code>var d;
d = function c() { console.log(c); };
d();
c();
</code>

Daí d é uma referência a uma função nomeada c

na execuçãod() a função c é executada no escopo global, onde não há nenhuma variável ou propriedade denominada c. Mas ainda consola consegue registrar a definição de função de c.Quando eu tenteic() Eu tenho um erro de referência. [Como eu esperava]

O caso 2 prova que não existe uma propriedade de janela chamada c disponível.d() consegue imprimir a definição do c na execução?

Toda função tem sua própria definição em seu escopo local como uma propriedade?

questionAnswers(1)

yourAnswerToTheQuestion