Javascript ES6类:在类方法内部未定义全局变量
我已经在类构造函数中创建了一个空数组this.contentElements作为全局变量,但是当我尝试从我的方法之一将对象推送到数组时,我得到错误“无法读取未定义的属性”push“。我弄不明白为什么这不管用 当我在构造函数中记录数组时,它返回空数组,但当我尝试在方法中记录数组时,它返回未定义数组 我也尝试过使用arrow函数表达式绑定该方法,成功率为0Javascript ES6类:在类方法内部未定义全局变量,javascript,ecmascript-6,Javascript,Ecmascript 6,我已经在类构造函数中创建了一个空数组this.contentElements作为全局变量,但是当我尝试从我的方法之一将对象推送到数组时,我得到错误“无法读取未定义的属性”push“。我弄不明白为什么这不管用 当我在构造函数中记录数组时,它返回空数组,但当我尝试在方法中记录数组时,它返回未定义数组 我也尝试过使用arrow函数表达式绑定该方法,成功率为0 export class Intro { constructor() { this.createTimeline(); th
export class Intro {
constructor() {
this.createTimeline();
this.contentElements = [];
}
createTimeline() {
const contentArray = Array.from(document.querySelector('.intro-overlay').querySelectorAll('.content'));
contentArray.map(content => {
const contentEl = content;
const contentBounds = contentEl.getBoundingClientRect();
const contentTop = contentBounds.top;
this.contentElements.push({
el: contentEl,
top: contentTop
})
console.log(this.contentElements)
});
}
}
在构造函数中,在调用此.createTimeline之前,需要将空数组分配给this.contentElements。更改构造函数中的顺序 contentElements在使用之前需要先初始化
export class Intro {
constructor() {
this.contentElements = [];
this.createTimeline();
}
createTimeline() {
const contentArray = Array.from(document.querySelector('.intro-
overlay').querySelectorAll('.content'));
contentArray.map(content => {
const contentEl = content;
const contentBounds = contentEl.getBoundingClientRect();
const contentTop = contentBounds.top;
this.contentElements.push({
el: contentEl,
top: contentTop
})
console.log(this.contentElements)
});
}
}
在此之前,您正在调用createTimeline。contentElements已定义谢谢,问题解决了!