Javascript 我总是收到一封“信”;未捕获引用错误:未定义imgArray“;错误
我已经写了一些代码作为淡入淡出一些图像的对象,只有当我要求构建幻灯片时,我才得到一个 “未捕获引用错误:未定义imgArray” 有人能帮我解释一下为什么我会犯这个错误吗。多谢各位Javascript 我总是收到一封“信”;未捕获引用错误:未定义imgArray“;错误,javascript,arrays,object,Javascript,Arrays,Object,我已经写了一些代码作为淡入淡出一些图像的对象,只有当我要求构建幻灯片时,我才得到一个 “未捕获引用错误:未定义imgArray” 有人能帮我解释一下为什么我会犯这个错误吗。多谢各位 const slideShow = { curIndex: 0, imgDuration: 10000, slider: document.querySelector('.banner__slider').childNodes, imgArray: [ 'images/background/
const slideShow = {
curIndex: 0,
imgDuration: 10000,
slider: document.querySelector('.banner__slider').childNodes,
imgArray: [
'images/background/img3.jpg',
'images/background/img1.jpg',
'images/background/img2.jpg'
],
buildSlideShow(arr) {
for (i = 0; i < arr.length; i++) {
const img = document.createElement('img');
img.src = arr[i];
slider.appendChild(img);
}
},
slideShow() {
function fadeIn(e) {
e.className = "fadeIn";
};
function fadeOut(e) {
e.className = "";
};
fadeOut(slider[curIndex]);
curIndex++;
if (curIndex === slider.length) {
curIndex = 0;
}
fadeIn(slider[curIndex]);
setTimeout(function () {
slideShow();
}, imgDuration);
},
};
slideShow.buildSlideShow(imgArray).slideShow();
const幻灯片放映={
库林德斯:0,
注册时间:10000,
滑块:document.querySelector('.banner__滑块').childNodes,
伊姆加里:[
“images/background/img3.jpg”,
'images/background/img1.jpg',
“images/background/img2.jpg”
],
构建幻灯片(arr){
对于(i=0;i
imgaray
不是全局变量,而是对象的属性幻灯片放映
。您应该将slideShow.imgaray
传递给函数
slideShow.buildSlideShow(slideShow.imgArray).slideShow();
并修复
uildSlideShow(arr){…}
开头缺少的b
类型。它应该是buildSlideShow(arr){…}
因为代码中没有imgArray
变量,所以您会收到错误。您可以将此更改为:
slideShow.buildSlideShow(slideShow.imgArray).slideShow();
这解决了一个问题,但又造成了另一个问题。buildSlideShow
方法不返回任何内容。因此,.slideShow()
方法将再次抛出错误。由于,imgaray
是slideShow
对象的属性,因此可以使用关键字。将方法更改为:
buildSlideShow() {
for (i = 0; i < this.imgArray.length; i++) {
const img = document.createElement('img');
img.src = this.imgArray[i];
slider.appendChild(img);
}
return this;
}