Свойства объекта и их конфигурация Flashcards
Что такое флаги свойств объектов?
Флаги свойств объектов – это дополнительные свойства, которые определяют особенности поведения и хранения значения самого свойства объекта.
Какие флаги доступны для свойств объектов?
Для свойств объектов доступны три флага: writable, enumerable и configurable.
Что означает флаг writable?
Флаг writable определяет, можно ли изменять значение свойства объекта. Если значение этого флага равно true, то свойство можно изменять, если false – то свойство доступно только для чтения.
Что означает флаг enumerable?
Флаг enumerable определяет, будет ли свойство объекта перечислено в циклах. Если значение этого флага равно true, то свойство будет перечислено в циклах, если false – то свойство будет игнорироваться циклами.
Что означает флаг configurable?
Флаг configurable определяет, можно ли изменять или удалять свойство объекта. Если значение этого флага равно true, то свойство можно изменять и удалять, если false – то свойство нельзя удалить и изменять флаги writable, enumerable и configurable уже нельзя.
Что делает метод Object.getOwnPropertyDescriptor?
Метод Object.getOwnPropertyDescriptor позволяет получить дескриптор свойства объекта.
Каким образом можно получить дескриптор свойства объекта?
Для получения дескриптора свойства объекта можно использовать метод Object.getOwnPropertyDescriptor, передав в качестве аргументов объект и имя свойства.
Что содержит дескриптор свойства объекта?
Дескриптор свойства объекта содержит значение свойства и его флаги (writable, enumerable и configurable).
Какие флаги будут присвоены свойству, если в методе Object.defineProperty не указаны никакие флаги явно?
Если в методе Object.defineProperty не указаны никакие флаги явно, то всем флагам (writable, enumerable, configurable) будет присвоено значение false.
Как изменить флаг writable свойства на true?
Для изменения флага writable на true необходимо вызвать метод Object.defineProperty() с дескриптором, содержащим ключ writable со значением true. Например:
let user = { name: “John” };
Object.defineProperty(user, “name”, {
writable: true
});
Как сделать так, чтобы нельзя было изменять свойство объекта?
С помощью Object,defineProperty():
let user = {
name: “John”
};
Object.defineProperty(user, “name”, {
writable: false
});
user.name = “Pete”; // Ошибка: Невозможно изменить доступное только для чтения свойство ‘name’
Какие ошибки возникнут при попытке изменить свойство с флагом writable и configurable со значением false в строгом режиме?
При попытке изменить свойство с флагом writable и configurable со значением false в строгом режиме возникнет ошибка. Если же строгий режим не включен, то интерпретатор будет действовать согласно флагам, но ошибок не будет.
Как можно сделать метод объекта неперечисляемым?
Чтобы сделать метод объекта неперечисляемым, необходимо присвоить флагу enumerable значение false при помощи метода Object.defineProperty().
Что происходит, если свойство имеет флаг configurable: false?
Если свойство имеет флаг configurable: false, то нельзя изменить флаг конфигурации (configurable) и все остальные флаги (writable, enumerable). Свойство также нельзя удалить.
Какие флаги имеет свойство Math.PI?
Свойство Math.PI имеет флаги: значение (value) – 3.141592653589793, записываемость (writable) – false, перечисляемость (enumerable) – false и конфигурируемость (configurable) – false.