Здравствуйте,
Как работает экспорт классов?
Я экспортирую класс через module.exports
// class.js
const int = 123
class ClassName {
constructor(param) {
this.param = param
}
static staticMethod() {
console.log(this.param)
}
publicMethod() {
ClassName.staticMethod()
}
}
module.exports = new ClassName(int)
В приложении импортирую модуль
// app.js
const importClass = require('./class');
importClass.publicMethod()
В console.log получаю undefined
Почему параметр не передается в класс?
При вызове конструктора: this - это новый создаваемый объект.
Поэтому присваивая
this.param = param
В новый объект добавляется поле param.
Статический метод относится к классу и this внутри него - это класс.
А так как у ClassName нет поля param - в выводе ожидаемый undefined.
Продвижение своими сайтами как стратегия роста и независимости