Symbol.toPrimitive

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

Опис

За допомогою властивості 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"

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

Специфікація
ECMAScript (ECMA-262)
The definition of 'Symbol.toPrimitive' in that specification.

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

BCD tables only load in the browser

Див. також