ответа простым гуглением.
в es6 нам сделали "нормальные" классы. как известно, без свойств. только методы и переменные внутри методов и конструктуров. однако, в es7 то ли предлагают, то ли уже ввели (в typescript, во всяком случае, это есть уже) возможность декларировать класс со свойствами:
class C {
prop = 0;
constructor(){...}
}
Вопрос: зачем это нужно, если можно определить переменные в конструкторе?
class C {
constructor(){
this.prop = 0;
}
}
Не могу понять, в чем разница, кроме того, что свойство не требует использования указателя. Может, дело в возможности использования свойств в статических методах? Но в этих методах можно отдельные переменные создать. Буду благодарен за разъяснения.
разобрался. свойство инстанса - то же самое, что и свойство, определенное в конструкторе (с указателем this). нужно для более явной инициализации. стандартом не является, рассматривается пока наряду с синтаксисом для определения приватных свойств (#x = 0). https://github.com/tc39/proposal-class-fields
Просто быстрее же, удобнее. В реакте уже вовсю используется
Обсуждают сегодня