From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../global_objects/object/valueof/index.html | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/object/valueof/index.html (limited to 'files/uk/web/javascript/reference/global_objects/object/valueof/index.html') diff --git a/files/uk/web/javascript/reference/global_objects/object/valueof/index.html b/files/uk/web/javascript/reference/global_objects/object/valueof/index.html new file mode 100644 index 0000000000..153f2be121 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/object/valueof/index.html @@ -0,0 +1,115 @@ +--- +title: Object.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/Object/valueOf +tags: + - JavaScript + - valueOf + - Об'єкт + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Object/valueOf +--- +
{{JSRef}}
+ +
Метод valueOf() повертає просту величину вказаного об'єкта.
+ +
{{EmbedInteractiveExample("pages/js/object-prototype-valueof.html")}}
+ + + +

Синтаксис

+ +
object.valueOf()
+ +

Значення, що повертається

+ +

Проста величина вказаного об'єкта.

+ +

Опис

+ +

JavaScript викликає метод valueOf, щоб перетворити об'єкт на просту величину. Рідко трапляється необхідність викликати його вручну. JavaScript автоматично застосовує valueOf, коли зустрічає об'єкт там, де очікується проста величина.

+ +

За замовчуванням, кожен об'єкт, який походить від {{jsxref("Object")}}, успадковує метод valueOf. Кожний вбудований об'єкт перезаписує цей метод, щоб повертати відповідне значення. Якщо об'єкт не має простої величини, valueOf повертає сам об'єкт.

+ +

Ви можете використовувати valueOf у своєму коді, щоб перетворити вбудований об'єкт на просту величину. Коли ви створюєте користувацький об'єкт, ви можете перезаписати Object.prototype.valueOf(), щоб викликати свій метод замість початкового метода {{jsxref("Object")}}.

+ +

Перезапис valueOf для користувацьких об'єктів

+ +

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

+ +

Припустимо, ви маєте об'єкт MyNumberType і бажаєте створити для нього метод valueOf. Наступний код призначає створену користувачем функцію методу valueOf:

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

З наведеним кодом, в будь-який момент, коли об'єкт типу MyNumberType використовується у контексті, де він має бути представлений простою величиною, JavaScript автоматично викличе функцію, визначену у коді.

+ +

Зазвичай, JavaScript викликає метод об'єкта valueOf, але ви можете викликати його власноруч, наступним чином:

+ +
myNumberType.valueOf()
+ +
+

Заувага: Об'єкти Object у контексті рядка приводяться за допомогою методу {{jsxref("Object.toString", "toString()")}}, це відрізняє їх від об'єктів {{jsxref("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
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецифікаціяСтатусКоментар
{{SpecName('ES1')}}{{Spec2('ES1')}}Початкове визначення. Реалізоване у JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.2.4.4', 'Object.prototype.valueOf')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}{{Spec2('ESDraft')}}
+ +

Сумісність з веб-переглядачами

+ + + +

{{Compat("javascript.builtins.Object.valueOf")}}

+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf