JavaScript Reflect.defineProperty() — оголосити властивість із дескриптором


Метод Reflect.defineProperty() створює або змінює властивість із повним дескриптором: значення, перелічуваність, можливість запису.

автор: NagarD

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

Робить те саме, що Object.defineProperty(), але з важливою різницею: при невдачі повертає false, а не кидає виняток.

Це робить його зручнішим для перевірок — не треба обгортати в try...catch.

Дескриптор дозволяє створити властивість, яку не видно в Object.keys() і в JSON.stringify() (enumerable: false) або яку не можна перезаписати (writable: false).

автор: NagarD

Переглядачі

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

Приклади

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

Прихована незмінна властивість — без винятків.

const config = {};

const ok = Reflect.defineProperty(config, 'version', {
    value: '1.0',
    writable: false,    // не змінити
    enumerable: false,  // не видно в Object.keys і JSON
});

console.log(ok); // true — а Object.defineProperty кинув би виняток

config.version = '2.0';
console.log(config.version);        // '1.0' — не змінилось
console.log(Object.keys(config));   // [] — не видно
console.log(JSON.stringify(config)); // '{}'
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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