MC-XOBAHCK, я не обратил внимание на свойства вашего объекта, извините.
const content = {
header: this.parseContent('header'),
main: this.parseContent('main'),
footer: this.parseContent('footer'),
parseContent: function(id) {
let txt = [];
document.querySelectorAll(id + ' div').forEach((div, i) => txt[i] = div.textContent);
return txt
}
}
Так объявлять значения для свойств нельзя, ошибка будет.
Вы при объявлении значений свойств пытаетесь обратиться через контекст к еще не созданному объекту "content", поэтому this будет указывать не на объект "content", а на "родительскую" ОВ.
Разберите пример
Dilettante_Pro, он исправил эту ошибку заменой свойств на методы.
Еще можно было бы сделать так, но это какое-то извращение:
const content = {
parseContent: function(id) {
let txt = [];
document.querySelectorAll(id + ' div').forEach((div, i) => txt[i] = div.textContent);
return txt
}
};
['header', 'main', 'footer'].forEach(key => content[key] = content.parseContent(key));