В чем разница между ними? И то, и то выводит нам строку, которую мы указывает в return, при том valueOf, если явно указано, затирает toString Почитал пару источников, но так и не понял разницы. Если можно, поподробнее, пожалуйста.
Ответ
Рискну предположить что Вы имеете ввиду функции valueOf и toString
Разница между ними чуть размыта, но понятна:
valueOf используется для численного преобразования объекта (foo + 42, ++bar, etc.). Но есть он далеко не у всех объектов (т. е. есть, но возвращает сам объект, поэтому игнорируется) и обязан возвращать примитив, иначе будет проигнорирован и будет вызван toString
toString используется для строкового преобразования объекта (alert(foo)). Есть у всех объектов, обычно не очень информативен ([object Object]), но очень удобен, если нужно перегрузить оператор, например (в JS нет перегрузки/создания операторов). Тоже обязан вернуть примитив.
Читать подробнее
У использования этих операторов есть нюансы (как везде в JS, наверное, экой коварный язык однако!), которые проще узнать из спецификации.
www.ecma-international.org
whatwg.org
ES5 на русском
Отличный учебник JS
Комментариев нет:
Отправить комментарий