-3

Интересуют две строчки кода помеченные внизу. Это инициализация или переменная с именем класса? Я запутался, помогите понять, что это? Как правильно называть эти две строки кода?

class User {
  constructor(name, age) { // Это тоже инициализация аргументов функции?
    this.names = name;
    this.ages = age;
  }

hi() { alert(this.names); }

age() { alert(this.ages); } }

let user = new User('opa', 32); // ***** Это инициализация переменной или что? ****** user.hi(); user.age();

Air
  • 14,505
Black_Viper
  • 1,259
  • @entithat, constructor(name, age) создает функцию с двумя аргументами внутри класса User, верно ли я понимаю? – Black_Viper Oct 23 '21 at 20:46
  • @ЯнЗамойский, нет, неверно – Grundy Oct 23 '21 at 21:13
  • 1
    @ЯнЗамойский Вы инициализируете new class. Это означает, что вам доступны методы, которые публичны в этом классе - снаружи. Вы инициализируете User, создавая как бы инстанс класса с его входными данными name, age, далее вы в this сохраняете этот под names и ages. Вы создаете методы которые в конструкторе, но используете их снаружи. Можно попробовать почитать по теме SOLID, может что-то вам станет понятно и от туда. – WalkMess Oct 23 '21 at 21:44
  • constructor(a, b) ничего не создает, меня смущает ваша терминология. constructor(a, b) указывает на то, что в классе User при создании экземпляра обьекта будет выполняться код этой функции. – entithat Oct 23 '21 at 22:23
  • @WalkMess спасибо, а на какой строке кода происходит инициализация? – Black_Viper Oct 24 '21 at 02:56
  • Ну это уже слишком. – WalkMess Oct 24 '21 at 10:51