Это вызвано сочетанием работы модулей и this
в функциях стрелок.
Во-первых, файл является модулем ES6, и это делает this
на верхнем уровне сценария объект определения модуля.
Во-вторых, функции стрелок (()=>{}
) наследуют this
из области, в которой они объявлены, в отличие от старого стиля function(){}
, где this
будет объектом, которым он объявляется как собственность. Это означает, что this
внутри функций является объектом модуля верхнего уровня, а не экспортированным объектом.
Если вместо этого они были объявлены с использованием function(){}
старого стиля, они должны работать как положено.