Задать вопрос
alex_keysi
@alex_keysi
Помог с решением? Отметь “правильный ответ”

Почему use strict не работает в setTimeout?

Вот ссылка на песочницу
Вот код который по ссылке.
<!DOCTYPE html>
<html>

<body>
  <script>
    'use strict';
    function func() {
      "use strict";
      alert(this ); // выведет undefined (кроме IE9-)
    }
    
    setTimeout(func,0);
  </script>
</body>

</html>

Почему this выводит как window? а не undefined?
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Потому что setTimeout вызывает колбек в контексте window.
Что-то вроде:
func.apply(window);

Стоит добавить, что при выполнении скрипта воркером this в колбеке setTimeout будет ссылаться на WorkerGlobalScope.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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