Классы ES6 и Node.js module.exports

403
31 января 2017, 23:32

Здравствуйте,

Как работает экспорт классов?

Я экспортирую класс через 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

Почему параметр не передается в класс?

Answer 1

При вызове конструктора: this - это новый создаваемый объект.

Поэтому присваивая

this.param = param

В новый объект добавляется поле param.

Статический метод относится к классу и this внутри него - это класс.

А так как у ClassName нет поля param - в выводе ожидаемый undefined.

READ ALSO
Скрипт для запуска на странице [требует правки]

Скрипт для запуска на странице [требует правки]

ЗдравствуйтеКак на открытом в браузере сайте отобрать элементы? К примеру добавить кнопку перед картинкой что скачать её

319