valueOf()
повертає просту величину вказаного об'єкта.The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Синтаксис
object.valueOf()
Значення, що повертається
Проста величина вказаного об'єкта.
Опис
JavaScript викликає метод valueOf
, щоб перетворити об'єкт на просту величину. Рідко трапляється необхідність викликати його вручну. JavaScript автоматично застосовує valueOf
, коли зустрічає об'єкт там, де очікується проста величина.
За замовчуванням, кожен об'єкт, який походить від Object
, успадковує метод valueOf
. Кожний вбудований об'єкт перезаписує цей метод, щоб повертати відповідне значення. Якщо об'єкт не має простої величини, valueOf
повертає сам об'єкт.
Ви можете використовувати valueOf
у своєму коді, щоб перетворити вбудований об'єкт на просту величину. Коли ви створюєте користувацький об'єкт, ви можете перезаписати Object.prototype.valueOf()
, щоб викликати свій метод замість початкового метода Object
.
Перезапис valueOf для користувацьких об'єктів
Ви можете створити функцію, яка буде викликатися замість стандартного методу valueOf
. Ваша функція не повинна приймати аргументів.
Припустимо, ви маєте об'єкт MyNumberType
і бажаєте створити для нього метод valueOf
. Наступний код призначає створену користувачем функцію методу valueOf
:
MyNumberType.prototype.valueOf = function() { return customPrimitiveValue; };
З наведеним кодом, в будь-який момент, коли об'єкт типу MyNumberType
використовується у контексті, де він має бути представлений простою величиною, JavaScript автоматично викличе функцію, визначену у коді.
Зазвичай, JavaScript викликає метод об'єкта valueOf
, але ви можете викликати його власноруч, наступним чином:
myNumberType.valueOf()
Заувага: Об'єкти Object у контексті рядка приводяться за допомогою методу toString()
, це відрізняє їх від об'єктів String
, що перетворюються на рядкові примітиви, використовуючи valueOf
. Усі об'єкти мають приведення до рядка виду "[object type]
". Але чимало об'єктів не приводяться до числа, булевого значення чи функції.
Приклади
Використання valueOf
function MyNumberType(n) {
this.number = n;
}
MyNumberType.prototype.valueOf = function() {
return this.number;
};
var myObj = new MyNumberType(4);
myObj + 3; // 7
Специфікації
Специфікація | Статус | Коментар |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Початкове визначення. Реалізоване у JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) The definition of 'Object.prototype.valueOf' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.prototype.valueOf' in that specification. |
Standard | |
ECMAScript (ECMA-262) The definition of 'Object.prototype.valueOf' in that specification. |
Living Standard |
Сумісність з веб-переглядачами
BCD tables only load in the browser