Метод JavaScript Object.prototype.valueOf()

Опубликовано: 25 Августа, 2022

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

Если мы имеем дело с пользовательскими типами объектов, мы можем использовать следующий синтаксис, чтобы переопределить для него метод valueOf():

Синтаксис:

ObjectType.prototype.valueOf = function() { 
    return CustomPrimitiveValue; 
};

В этом синтаксисе

  • ObjectType: Пользовательский тип объекта, созданный пользователем.
  • CustomPrimitiveValue: примитивное значение указанного объекта.

Хотя метод valueOf() автоматически вызывается в JavaScript, мы можем использовать следующий синтаксис, чтобы вызвать его самостоятельно:

Синтаксис:

ObjectType.valueOf()

Пример:

Выход:

В приведенном выше примере мы попытались переопределить метод valueOf(), чтобы вернуть примитивное значение как фактическое число плюс 3. Таким образом, примитивное значение, возвращаемое после передачи 18 в качестве аргумента, равно 21. Когда мы пытались записать примитивное значение минус 12, мы получили 21-12, что равно 9, как наш окончательный ответ.

Поддерживаемые браузеры:

  • Chrome 1 и выше
  • Край 12 и выше
  • Фаерфокс 1 и выше
  • Internet Explorer 4 и выше
  • Опера 3 и выше
  • Сафари 1 и выше