Что выведет этот код?
f.call(null);
function f() {
alert(this);
}
nullundefined- другое
Решение
Решение
Ответ: 3
Если при вызове функции через call/apply первым аргументом является null/undefined, то при работе в режиме старого стандарта JavaScript браузер вызывает её в контексте window.
function f() {
alert(this); // *!*выведет текстовое представление window*/!*
}
f.call(null);
А в режиме соответствия стандартам будет выведен именно null:
"use strict";
function g() {
alert(this); // *!*выведет null во всех браузерах с поддержкой strict mode*/!*
}
g.call(null);
То есть, результат может быть разным, в зависимости от того, включён ли строгий режим.
#465