Вопрос по javascript – Javascript назвал функцию как выражение

2

Код JavaScript

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

Я понимаю концепцию подъема переменных, когда объявления переменных и определения функций поднимаются на вершину существующей области. Также определение функции в выражениях функции не поднимается.

Итак, выше будет

var d;
d = function c() { console.log(c); };
d();
c();

Следовательно, d является ссылкой на именованную функцию c

  1. on executing d() the function c is executed in global scope, where there is no variable or property named c. But still console manages to log function definition of c.
  2. When I tried c() I got a reference error. [As I Expected]

Случай 2 доказывает, что нет доступного свойства окна с именем c Итак, как жеd() удалось распечатать определение с при исполнении?

Есть ли у каждой функции собственное определение в локальной области видимости как свойства?

Ваш Ответ

1   ответ
1

соответствующую имени функции только в области действия этой функции.

Вот отличная, но длинная статья на эту тему:http://kangax.github.com/nfe/

Смотрите такжесоответствующий раздел спецификации ECMAScript 5, У этого есть определенное примечание об этом.

Error: User Rate Limit Exceeded Tamil

Похожие вопросы