Публичные поля

В предыдущих примерах мы создавали свойства внутри конструктора, добавляя перед ними указатель this. Однако существует возможность объявления свойств вне конструктора. Такие публичные поля инициализируются до вызова конструктора. Внутри конструктора можно изменить значение публичного поля. Если публичному полю не присвоено значение, то оно будет иметь значение undefined. Пример использования публичных полей приведен в листинге 11.9.

Листинг 11.9. Публичные поля

const name = 'd';
class A {
   a = 10;             // Публичные поля
   b = 32;
   c;                  // undefined
   [name] = 47;        // Динамическое создание названия
   constructor(_a) {
      this.a = _a;     // Замена значения публичного поля
   }
   getB() {
      return this.b;
   }
}
let objA = new A(6);
console.log( objA.a );      // 6
console.log( objA.b );      // 32
console.log( objA.getB() ); // 32
console.log( objA.c );      // undefined
console.log( objA[name] );  // 47
console.log( objA );        // A { a: 6, b: 32, c: undefined, d: 47 }

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов