JavaScript Reflect.set() — записати властивість об'єкта


Метод Reflect.set() записує властивість і повертає true або false — вдалося чи ні.

автор: NagarD

Загальний опис

Оператор присвоєння цього не вміє: obj.key = 1 у нестрогому режимі просто мовчки не спрацює, якщо об'єкт заморожений. Помилки не буде, значення не зміниться — і ти про це не дізнаєшся.

Reflect.set() чесно каже false.

І саме тому він потрібен у пастці set посередника: та мусить повернути булеве значення. Повернеш false — у строгому режимі полетить TypeError; забудеш повернути взагалі — теж.

автор: NagarD

Нотатка

Пастка set зобов'язана повернути true при успіху. Забув return — у строгому режимі присвоєння впаде з TypeError, хоч значення й записалось.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
set 49+ 42+ 10+ 36+ 12+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
set 49+ yes yes 10+

Приклади

+ запропонувати свій приклад у пісочниці

Заморожений об'єкт: присвоєння мовчить, Reflect каже правду.

const frozen = Object.freeze({ a: 1 });

frozen.a = 2;                       // мовчки не спрацювало
console.log(Reflect.set(frozen, 'a', 2)); // false — чесно

// у пастці — обов'язково повертаємо результат
const state = new Proxy({}, {
    set(target, key, value, receiver) {
        render();

        return Reflect.set(target, key, value, receiver);
    },
});
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід