Object.defineProperty() vs Object.prototype.property vs Object.property когда использовать что?

Может кто-нибудь дать мне хороший пример использования, когда использовать Object.defineProperty(), Object.prototype.property и Object.property.

1 ответ

Представь, что у нас есть person объект с age свойство со значением 20,

Метод Object.defineProperty() определяет новое свойство непосредственно для объекта или изменяет существующее свойство объекта и возвращает объект.

Object.defineProperty(obj, prop, descriptor)

Чем это отличается от обычного оператора присваивания?

Это дает вам больше контроля над созданием свойства, чем стандартное назначение (person.age = 25). Помимо установки значения, вы можете указать, может ли свойство быть удалено или отредактировано, среди прочего, более подробно изложенное на странице Object.defineProperty().

Несколько примеров

Чтобы добавить к этому человеку поле имени, которое нельзя изменить с помощью оператора присваивания:

Object.defineProperty(person, "name", {value: "Jim", writable: false})

или обновить свойство age и сделать его редактируемым:

Object.defineProperty(person, "age", {value: 25, writable: true}),

Object.prototype.property и Object.property оба ссылаются на доступ к свойству объекта. Это похоже на доступ к age собственность person использование объекта person.age (вы также можете использовать person["age"])

Другие вопросы по тегам