@Ivanushka255

В чем плюсы применения valueOf, toString, Symbol.toPrimitive?

Для чего существуют valueOf, toString, Symbol.toPrimitive, если можно преобразовать объект в желаемый тип данных легче и проще?
Например:
let a = {};
console.log(a); //объект --> string
a = +a; //объект --> number


Неужели обязательно всегда прописывать эти громоздкие конструкции методов объекта и символа Symbol.toPrimitive? В чем конкретно их польза?
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
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Какая-то у вас каша.

> если можно преобразовать объект в желаемый тип данных легче и проще
Так эти способы и вызовут неявно те же самые `toString`, `valueOf` и `Symbol.toPrimitive`
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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