Преобразование объектов в 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