diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/symbol/toprimitive/index.html')
-rw-r--r-- | files/uk/web/javascript/reference/global_objects/symbol/toprimitive/index.html | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/symbol/toprimitive/index.html b/files/uk/web/javascript/reference/global_objects/symbol/toprimitive/index.html new file mode 100644 index 0000000000..0f9567a8bb --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/symbol/toprimitive/index.html @@ -0,0 +1,75 @@ +--- +title: Symbol.toPrimitive +slug: Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive +translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive +--- +<div>{{JSRef}}</div> + +<p><code><strong>Symbol.toPrimitive</strong></code> - це символ, який визначає властивість зі значенням-функцією, що викликається для перетворення об'єкта на відповідне просте значення.</p> + +<div>{{EmbedInteractiveExample("pages/js/symbol-toprimitive.html")}}</div> + + + +<h2 id="Опис">Опис</h2> + +<p>За допомогою властивості <strong><code>Symbol.toPrimitive</code></strong> (що використовується в якості функції) об'єкт може перетворюватись на прості значення. Функція викликається з рядковим аргументом <strong><code>hint</code></strong>, який вказує бажаний тип отриманого примітиву. Аргумент <strong><code>hint</code></strong> може мати значення <code>"<em>number</em>"</code>, <code>"<em>string</em>"</code> або <code>"<em>default</em>"</code>.</p> + +<p>{{js_property_attributes(0,0,0)}}</p> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Модифікація_простих_значень_отриманих_перетворенням_обєкта">Модифікація простих значень, отриманих перетворенням об'єкта</h3> + +<p>Наступний приклад описує, як властивість <strong><code>Symbol.toPrimitive</code></strong> може змінювати прості значення, отримані з об'єкта.</p> + +<pre class="brush: js notranslate">// Об'єкт без властивості Symbol.toPrimitive. +var obj1 = {}; +console.log(+obj1); // NaN +console.log(`${obj1}`); // "[object Object]" +console.log(obj1 + ''); // "[object Object]" + +// Об'єкт з властивістю Symbol.toPrimitive. +var obj2 = { + [Symbol.toPrimitive](hint) { + if (hint == 'number') { + return 10; + } + if (hint == 'string') { + return 'привіт'; + } + return true; + } +}; +console.log(+obj2); // 10 -- hint дорівнює "number" +console.log(`${obj2}`); // "привіт" -- hint дорівнює "string" +console.log(obj2 + ''); // "true" -- hint дорівнює "default" +</pre> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Специфікація</th> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-symbol.toprimitive', 'Symbol.toPrimitive')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> + + + +<p>{{Compat("javascript.builtins.Symbol.toPrimitive")}}</p> + +<h2 id="Див._також">Див. також</h2> + +<ul> + <li>{{jsxref("Date.@@toPrimitive", "Date.prototype[@@toPrimitive]")}}</li> + <li>{{jsxref("Symbol.@@toPrimitive", "Symbol.prototype[@@toPrimitive]")}}</li> + <li>{{jsxref("Object.prototype.toString()")}}</li> + <li>{{jsxref("Object.prototype.valueOf()")}}</li> +</ul> |