Всем доброго времени суток!
Возник такой серьезный вопрос, делаю 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')