javascript-我不断收到“ Uncaught ReferenceError:未定义imgArray”错误

前端之家收集整理的这篇文章主要介绍了javascript-我不断收到“ Uncaught ReferenceError:未定义imgArray”错误 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

“Uncaught ReferenceError: imgArray is not defined”.

任何人都可以帮助我为什么会出现此错误.谢谢.

  1. const slideShow = {
  2. curIndex: 0,imgDuration: 10000,slider: document.querySelector('.banner__slider').childNodes,imgArray: [
  3. 'images/background/img3.jpg','images/background/img1.jpg','images/background/img2.jpg'
  4. ],buildSlideShow(arr) {
  5. for (i = 0; i < arr.length; i++) {
  6. const img = document.createElement('img');
  7. img.src = arr[i];
  8. slider.appendChild(img);
  9. }
  10. },slideShow() {
  11. function fadeIn(e) {
  12. e.className = "fadeIn";
  13. };
  14. function fadeOut(e) {
  15. e.className = "";
  16. };
  17. fadeOut(slider[curIndex]);
  18. curIndex++;
  19. if (curIndex === slider.length) {
  20. curIndex = 0;
  21. }
  22. fadeIn(slider[curIndex]);
  23. setTimeout(function () {
  24. slideShow();
  25. },imgDuration);
  26. },};
  27. slideShow.buildSlideShow(imgArray).slideShow();
最佳答案
因为代码中没有imgArray变量,所以出现了错误.您可以将其更改为:

  1. slideShow.buildSlideShow(slideShow.imgArray).slideShow();

这样可以解决一个问题,但会造成另一个问题. buildSlideShow方法不返回任何内容.因此,.slideShow()方法将再次引发错误.由于imgArray是slideShow对象的属性,因此可以使用this关键字.将方法更改为:

  1. buildSlideShow() {
  2. for (i = 0; i < this.imgArray.length; i++) {
  3. const img = document.createElement('img');
  4. img.src = this.imgArray[i];
  5. slider.appendChild(img);
  6. }
  7. return this;
  8. }

从buildSlideShow中,使用return this返回对象的实例.这样,您可以链接方法.

  1. const slideShow = {
  2. curIndex: 0,// slider: document.querySelector('.banner__slider').childNodes,buildSlideShow() {
  3. console.log("inside buildSlideShow method");
  4. for (i = 0; i < this.imgArray.length; i++) {
  5. console.log(this.imgArray[i]);
  6. const img = document.createElement('img');
  7. img.src = this.imgArray[i];
  8. //slider.appendChild(img);
  9. }
  10. return this;
  11. },slideShow() {
  12. console.log("inside slideShow method")
  13. }
  14. }
  15. slideShow.buildSlideShow()
  16. .slideShow();

(我已注释掉滑块代码)

猜你在找的JavaScript相关文章