@zlodiak

Почему this не указывает на контекст window?

Помогите пожалуйста понять почему следующий код выводит undefined, а не 5

var b = 5;

function a() {
    console.log(this.b);
}

a()


Я понимаю происходящее так:
  1. lexical enviromet функции a() находится внутри lexical enviromet window
  2. строка a() запускает функцию в lexical enviromet window
  3. следовательно функция запускается в контексте window и this указывает window
  4. console.log(this.b) выводит window.b
  5. то есть в результате должно вывестись значение 5
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Помогите пожалуйста понять почему следующий код выводит undefined, а не 5

Выводит где? Как вы этот код запускали? Раз уж вы решили скрыть эту информацию...

Ответ номер раз: а чо вы врёте-то? Открываем консоль, копируем код, запускаем и видим, что выводится 5.

Ответ номер два: jsfiddle, например, по умолчанию оборачивает код в window.onload, соответственно, переменная b в window не попадёт - потому и undefined. (UPD. Исправили эту дичь).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AlexKindGeek
Она возвращает 5 и undefined, а undefined потому что функция ничего не возвращает.
Попробуйте что-то вывести с функции и увидите что вместо undefined выведется.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект