Я не могу понять детали вашей программы, но я полагаю, что это связано с разницей в function(){ this }
и () => {this}
this
в разрешающей функции имеет другое значение с this
в function(){}
функция стиля.
let A = {
f() {
return this.a // this is caller of f. This `this` is not always A.
}
f2 = () => {
return this.a // This `this` always equals A
}
a: 1
}
A.f() // => 1 because caller of f is A, so `this` is A.
A.f.call({}) // => undefined because caller of f is not A, but {}
A.f2() // => 2
A.f2().call({}) // => 2 because this is always A