Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Object.prototype.valueOf()

Сводка

Метод valueOf() возвращает примитивное значение указанного объекта.

Синтаксис

object.valueOf()

Описание

JavaScript вызывает метод valueOf для преобразования объекта в примитивное значение. Вам редко потребуется вызывать метод valueOf самостоятельно; JavaScript автоматически вызывает его при обнаружении объекта, когда ожидается примитивное значение.

По умолчанию, метод valueOf наследуется каждым объектом, произошедшим от Object. Каждый встроенный объект ядра переопределяет этот метод, возвращая подходящее значение. Если объект не имеет примитивного значения, valueOf возвращает сам объект, который отображается как:

[object Object]

Вы можете использовать valueOf в своём коде для преобразования встроенных объектов в примитивное значение. Когда вы создаёте пользовательский объект, вы можете переопределить метод Object.prototype.valueOf(), чтобы вызывать собственный метод вместо метода по умолчанию из Object.

Переопределение valueOf в пользовательских объектах

Вы можете создать функцию, вызываемую вместо метода valueOf по умолчанию. Ваша функция не должна принимать аргументов.

Предположим, у вас есть объект типа myNumberType и вы хотите создать для него метод valueOf. Следующий код присваивает определённую пользователем функцию методу valueOf объекта:

myNumberType.prototype.valueOf = function() { return customPrimitiveValue; };

Начиная с этого места в вашем коде, в любое время, когда объект типа myNumberType будет использоваться в контексте, где он должен быть представлен примитивным значением, JavaScript автоматически будет функцию, определённую в этом коде.

Метод объекта valueOf обычно вызывается движком JavaScript, но вы можете вызвать его и самостоятельно, как показано ниже:

myNumber.valueOf()

Примечание: объекты в строковом контексте преобразуются с помощью метода toString(), что отличается от объектов String, преобразующихся в строковые примитивы методом valueOf. Все объекты имеют преобразование в строку вида "[object type]". Но многие объекты не преобразуются в число, логическое значение или функцию.

Примеры

Пример: использование valueOf

var o = new Object();
myVar = o.valueOf();      // [object Object]

Спецификации

Спецификация Статус Комментарии
ECMAScript 1-е издание. Стандарт Изначальное определение. Реализована в JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
Определение 'Object.prototype.valueOf' в этой спецификации.
Стандарт  
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Object.prototype.valueOf' в этой спецификации.
Стандарт  

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Natalya_Surikova, Mingun, teoli, mixture
 Обновлялась последний раз: Natalya_Surikova,