Метод valueOf - позволяет задать функцию для численного преобразования. Если этого метода нет, используется toString.
Метод valueOf обязан возвращать строку, если он будет возвращать объект - он будет игнорироваться.
См. также toString (преобразование с строку).
Синтаксис
объект.valueOf = function () {
return 'число'
};
Примеры
Пример
С помощью valueOf напишем собственную функцию для преобразования объекта в число:
var obj = {
value: 25,
valueOf: function() {
return this.value;
}
};
document.write(obj * 2);
Результат выполнения кода:
50
Пример
Теперь давайте уберем из объекта valueOf:
var obj = {
value: 25,
};
document.write(obj * 2);
Результат выполнения кода:
NaN
Пример
Если valueOf не - будет использован toString:
var obj = {
value: 25,
toString: function() {
return this.value;
}
};
document.write(obj * 2);
Результат выполнения кода:
50
Пример
Некоторые стандартные объекты имеют свои функции valueOf:
alert(new Date()) //''
alert([1, 2, 3]) //'1,2,3'