@t800zippygod

Что происходит с объектом класса JS?

Всем доброго времени суток!
Возник такой серьезный вопрос, делаю chain-цепочку в JS. Из первого метода "add" возвращаю this, во втором мутирую состояние поля objects у this.
Так вот почему-то это поле мутирует еще до того, как был вызван второй метод.
Я может туплю где-то, но уже конкретно загнался, мб кто поможет :\
add(data) {
    switch(data.kind) {
      case 'Placemark':
        this.object = placemark(data)
        break
    }

    console.log(this)
    console.log('in add')
    return this
  }

  setInto(clasterName) {
    console.log(this)
    console.log('i am here')
    if(! this.objects[clasterName]) {
      this.objects[clasterName] = []
    }
    this.objects[clasterName].push(this.object)
  }

Это те самые два метода7
В консоль сначала выводится мутировавший инстанс, потом "in add", подтверждающий что находимся еще в первом методе. Уже потом выводятся логи из второго метода. Что за "магия"?

Вызов:
map.add({kind: 'Placemark'}).setInto('hrenSobachiy')
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы