@PlasterTom

{}.toString.call(obj).slice(8, -1) Почему (8,-1)?

Для встроенных объектов мы можем получить тип из скрытого свойства [[Class]], при помощи вызова {}.toString.call(obj).slice(8, -1)

Почему именно (8,-1)? Можно ли поставить другие значения?
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
HoHsi
@HoHsi
Слайс - метод массивов и строк, т.е. по сути этот метод вырезает часть из массива.

В данном случае, мы посредствам, допустим ({}).toString.call([]) получим "[object Array]", т.е. строку, которая содержит имя конструктора.

По спеку, JS выводит строку в следующем формате: "[object <NAME_OF_CONSTRUCTOR>]", и следовательно если вырезать все, кроме 8 до предпоследного символа, мы получим само имя
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы