Выбор ответа Senior this, call, apply, bind обновлено
Примитив в качестве this
Вопрос
Что выведет код?
'use strict';
function kind() { return typeof this; }
console.log(kind.call(5), kind.call(null));
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 'number' 'object'. В строгом режиме this передаётся как есть, без преобразований: 5 остаётся числом, typeof даёт 'number'; null остаётся null, а typeof null это 'object'.
Варианты ответа
'object' 'object''number' 'object'правильный ответ'number' 'undefined''object' 'undefined'
Разбор
В строгом режиме this передаётся как есть, без преобразований: 5 остаётся числом, typeof даёт 'number'; null остаётся null, а typeof null это 'object'. В нестрогом режиме примитив обернулся бы в объект Number (тоже 'object'), а null заменился бы глобальным объектом, и вышло бы 'object' 'object'. Варианты с 'undefined' путают null с undefined.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.