Преобразование объектов в JavaScript
При выполнении определенных операций с переменными JavaScript преобразует типы данных. Например, при выполнении логических операций - в boolean
; при выполнении арифметических операций - в number
; при выполнении функции alert()
- в string
. Это касается и объектов.
Результатом преобразования любого объекта (даже пустого) в тип boolean
всегда является true
.
Для преобразования в тип string
JavaScript автоматически выполняет метод объекта toString()
. Все объекты (включая пользовательские) имеют метод toString()
. По умолчанию для пользовательского объекта (если явно не определено) метод toString()
возвращает строку
.[object Object]
var obj = { toString: function() { return 'Объект obj'; } }; alert(obj); /* Объект obj */
Для преобразования в тип number
JavaScript автоматически выполняет метод объекта valueOf()
. Если такой метод не определен, то выполняется toString()
. По умолчанию valueOf()
определен только для нескольких встроенных объектов.
var obj = { valueOf: function() { return 101; } }; alert(obj - 1); // 100