iDennis
@iDennis

Почему так не работает?

var a={a:5};
function f(){
var a=a;
alert(a); // undefined


}
f();
я всегда думал что это работает
  • Вопрос задан
  • 2220 просмотров
Решения вопроса 2
@asdz
ну видимо, потому что в функции вы переменную самой себе присваиваете.
Ответ написан
Комментировать
Не работает потому, что при выполнении участок кода
var a=a;
идентичен следующему:
var a;
a=a;


То есть вначале объявляется переменная в локальной области видимости (которая имеет значение undefined), а затем она присваивается сама себе (опять все тот же undefined).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Комментировать
Satanpit
@Satanpit
Front-end developer
А зачем Вы переопределяете переменную внешнего scope внутренним?
Зачем вообще эта строчка var a=a; в функции f() переменная a и без этого будет доступна.
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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