Показать сообщение отдельно
  #7 (permalink)  
Старый 24.03.2020, 03:05
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

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;
}
Отличие в том, что объявление класса при помощи функции-конструктора требует ручной проверки (если практически необходимо; в примере выше закомментировано) на то, что этот конструктор не будет вызываться как функция, а скорей только как конструктор. (А синтаксис класса предполагает такую проверку автоматически)

Последний раз редактировалось Malleys, 24.03.2020 в 03:22.
Ответить с цитированием