Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我总是收到一封“信”;未捕获引用错误:未定义imgArray“;错误_Javascript_Arrays_Object - Fatal编程技术网

Javascript 我总是收到一封“信”;未捕获引用错误:未定义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/

我已经写了一些代码作为淡入淡出一些图像的对象,只有当我要求构建幻灯片时,我才得到一个

“未捕获引用错误:未定义imgArray”

有人能帮我解释一下为什么我会犯这个错误吗。多谢各位

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;
}