Symbol.toPrimitive
Symbol.toPrimitive
- це символ, який визначає властивість зі значенням-функцією, що викликається для перетворення об'єкта на відповідне просте значення.
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.
Опис
За допомогою властивості Symbol.toPrimitive
(що використовується в якості функції) об'єкт може перетворюватись на прості значення. Функція викликається з рядковим аргументом hint
, який вказує бажаний тип отриманого примітиву. Аргумент hint
може мати значення "number"
, "string"
або "default"
.
Атрибути поля Symbol.toPrimitive |
|
---|---|
Доступний для запису | ні |
Доступний для переліку | ні |
Доступний для налаштування | ні |
Приклади
Модифікація простих значень, отриманих перетворенням об'єкта
Наступний приклад описує, як властивість Symbol.toPrimitive
може змінювати прості значення, отримані з об'єкта.
// Об'єкт без властивості 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"
Специфікації
Сумісність з веб-переглядачами
BCD tables only load in the browser