Skip to content

Object.defineProperty

garevna edited this page Dec 16, 2018 · 11 revisions

🎓 Статические методы конструктора Object


🎓 Object.defineProperty()

Этот метод позволяет создать объекту свойство с дескриптором

  • Первый аргумент метода - ссылка на объект, которому добавляется свойство
  • Второй аргумент - имя свойства ( строка )
  • Третий аргумент - объект дескриптора свойства

☕ Добавим свойство type объекту sample и сделаем это свойство неперечислимым

var sample = {
    name: "figure",
    size: 100,
    color: "red"
}
Object.defineProperty ( sample, 'type', {
    value: "svg",
    enumerable: false
})

Object.keys ( sample )
Результат:
► (3) ["name", "size", "color"]

🎓 геттер и сеттер свойства

Добавим еще одно свойство объекту sample
Свойство operation будет с геттером и сеттером
⚠️ Когда определяются атрибуты get() и set() в дескрипторе свойства,
нельзя использовать атрибуты writable и value

Object.defineProperty ( sample, "operation", {
    get: () => this.operation ? 
               this.operation.substr ( 0, 1 ) : "?",
    set: newVal => this.operation = newVal + "***"
})
Результат:
▼ {name: "figure", size: 100, color: "red", type: "svg"}
    color: "red"
    name: "figure"
    size: 100
    operation: (...)
    type: "svg"
  ► get operation: () => {…}
  ► set operation: newVal => this.operation = newVal + "***"
  ► __proto__: Object

🔘 Object.freeze()
🔘 Object.getOwnPropertySymbols()
🔘 Object.is()
🔘 Object.isExtensible()
🔘 Object.isFrozen()
🔘 Object.isSealed()
🔘 Object.preventExtensions()
🔘 Object.seal()

🔗 MDN

© Irina H.Fylyppova 2018
Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав


Новая версия


1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19

Занятие 1

⤵️

Занятие 2

⤴️ ⤵️

Занятие 3

⤴️ ⤵️

Занятие 4

⤴️ ⤵️

Занятие 5

⤴️ ⤵️

Занятие 6

⤴️ ⤵️

Занятие 7

⤴️ ⤵️

Занятие 8

⤴️ ⤵️

Занятие 9

⤴️ ⤵️

Занятие 10

⤴️ ⤵️

Занятие 11

⤴️ ⤵️

Занятие 12

⤴️ ⤵️

Занятие 13

⤴️ ⤵️

Занятие 14

⤴️ ⤵️

Занятие 15

⤴️ ⤵️

Занятие 16

⤴️ ⤵️

Занятие 17

⤴️ ⤵️

Занятие 18

⤴️ ⤵️

Занятие 19

⤴️ ⤵️

⤴️

ico20 Дополнительно
dir-20 Справочная инфо

Clone this wiki locally