rexton, вы можете объявить все нужные переменные при инициализации класса, например ваш пример выше... Синтаксис ES2020
{
class A {
b = 1;
c() {
alarm(this.b);
}
}
function alarm(message) {
alert("⚠️ " + message);
}
const a = new A();
a.c();
}
Если вы хотите использовать более старую спецификацию, то...
{
class A {
constructor() {
this.b = 1;
}
c() {
alarm(this.b);
}
}
function alarm(message) {
alert("⚠️ " + message);
}
const a = new A();
a.c();
}
Сообщение от rexton
|
А используя функции это возможно.
|
Класс — это тоже функция. Т. е. если вы пишете...
class A {
constructor() {
let a = 1;
this.a = 2;
}
}
то это тоже самое, что...
function A() {
// if(!new.target) throw new TypeError("Class constructor cannot be invoked without 'new'");
let a = 1;
this.a = 2;
}
Отличие в том, что объявление класса при помощи функции-конструктора требует ручной проверки (если практически необходимо; в примере выше закомментировано) на то, что этот конструктор не будет вызываться как функция, а скорей только как конструктор. (А синтаксис класса предполагает такую проверку автоматически)