J: Основы JavaScript. Преобразование объектов в примитивы - видео HD

J: Основы JavaScript. Преобразование объектов в примитивы - видео
00:09:02
Обнаружено блокирование рекламы на сайте

Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).

12n.ru 18789 роликов

Основы JavaScript. Преобразование объектов в примитивы - видео.

В данном скринкасте мы разберем еще один вид преобразований: преобразование объектов в примитивы. Мы долго готовились к этой теме, рассматривая другие привидения типов, поэтому отнеситесь к ней более внимательно. Также мы затронем тему математических операций, которые станут основным объектом обсуждения в следующих видео.
RSS
Максим Максимов
10:50
На каком устройстве работаешь
Комментарий удален
Комментарий удален
crystall Pro
21:59
Когда стрим по игре?
RM
07:57
Спасибо за LearnJS

Symbol.toPrimitive
Начнём с универсального подхода – символа Symbol.toPrimitive: метод с таким названием (если есть) используется для всех преобразований:

obj[Symbol.toPrimitive] = function(hint) {
// должен вернуть примитивное значение
// hint равно чему-то одному из: «string», «number» или «default»
};
Для примера используем его в реализации объекта user:

let user = {
name: «John»,
money: 1000,

[Symbol.toPrimitive](hint) {
alert(`hint: ${hint}`);
return hint == «string»? `{name: "${this.name}"}`: this.money;
}
};

// демонстрация результатов преобразований:
alert(user); // hint: string -> {name: «John»}
alert(+user); // hint: number -> 1000
alert(user + 500); // hint: default -> 1500
Как мы видим из кода, user преобразовывается либо в информативную читаемую строку, либо в денежный счёт в зависимости от значения хинта. Единственный метод user[Symbol.toPrimitive] смог обработать все случаи преобразований.

Методы toString/valueOf
Методы toString и valueOf берут своё начало с древних времён. Они не символы, так как в то время символов ещё не существовало, а просто обычные методы объектов со строковыми именами. Они предоставляют «устаревший» способ реализации преобразований объектов.

Если нет метода Symbol.toPrimitive, движок JavaScript пытается найти эти методы и вызвать их следующим образом:

toString -> valueOf для хинта со значением «string».
valueOf -> toString – в ином случае.
Для примера, используем их в реализации всё того же объекта user. Воспроизведём его поведение комбинацией методов toString и valueOf:

let user = {
name: «John»,
money: 1000,

// для хинта равного «string»
toString() {
return `{name: "${this.name}"}`;
},

// для хинта равного «number» или «default»
valueOf() {
return this.money;
}

};

alert(user); // toString -> {name: «John»}
alert(+user); // valueOf -> 1000
alert(user + 500); // valueOf -> 1500
Как видим, получилось то же поведение, что и в предыдущем примере с Symbol.toPrimitive.

Довольно часто мы хотим описать одно «универсальное» преобразование объекта к примитиву для всех ситуаций. Для этого достаточно создать один toString:

let user = {
name: «John»,

toString() {
return this.name;
}
};

alert(user); // toString -> John
alert(user + 500); // toString -> John500
Neo
11:33
+1
Ты полностью перечитал learn.javasciprt.ru. От себя говори, от своих слов.
Ervand Shokaryan
16:13
Простая перечитка из learn javascript… шустрый какой

Новости

В Санкт-Петербурге пройдет ежегодная конференция по информационной безопасности «Код ИБ» Компания «Электронные Офисные Системы» выпускает обновление Сервера мобильных решений В «СёрчИнформ КИБ» интегрирован ИИ-модуль для анализа инцидентов ГК «ЭОС» запускает акцию по бесплатной миграции на импортонезависимую версию АИС «МФЦ Дело» Обучение инженеров от МТС и НИУ ВШЭ: новые возможности для студентов

В Санкт-Петербурге пройдет ежегодная конференция по информационной безопасности «Код ИБ»


14 часов назад
В Санкт-Петербурге пройдет ежегодная конференция по информационной безопасности «Код ИБ»
В Санкт-Петербурге пройдет ежегодная конференция по информационной безопасности «Код ИБ»
Компания «Электронные Офисные Системы» выпускает обновление Сервера мобильных решений
Компания «Электронные Офисные Системы» выпускает обновление Сервера мобильных решений
В «СёрчИнформ КИБ» интегрирован ИИ-модуль для анализа инцидентов
В «СёрчИнформ КИБ» интегрирован ИИ-модуль для анализа инцидентов
ГК «ЭОС» запускает акцию по бесплатной миграции на импортонезависимую версию АИС «МФЦ Дело»
ГК «ЭОС» запускает акцию по бесплатной миграции на импортонезависимую версию АИС «МФЦ Дело»
Обучение инженеров от МТС и НИУ ВШЭ: новые возможности для студентов
Обучение инженеров от МТС и НИУ ВШЭ: новые возможности для студентов