Javascript this关键字返回undefined

Javascript this keyword return undefined

本文关键字:undefined 返回 关键字 this Javascript      更新时间:2023-09-26

我正在尝试用OOP文字方式构建幻灯片放映功能。

所以,这是我的代码:

"use strict";
var slideshow = {
    elSet   : $(".slideshow"),
    elCount : indexCount(".dealList"),
    elWidth : width(".dealList"),
    elNo    : 1,
    next    : function() {
                if (this.elNo < this.elCount) {
                    console.log(this.elSet);
                    this.elNo += 1;
                    this.elSet.style.transform = "translateX(-" + this.elWidth * this.elNo + "px)";
                }
                else {
                    console.log(this.elSet);
                    this.elNo = 1;
                    this.elSet.style.transform = "translateX(-" + this.elWidth * this.elNo + "px)";
                }
    },
    initial : function() {
                var loop = setInterval(this.next, 5000);
    }
}
slideshow.initial();

浏览器控制台出现问题:

  1. 内存不足
  2. console.log返回未定义

问题可能是因为这个关键词而发生的吗?

我的代码出了什么问题?

执行时setInterval()的回调绑定到全局对象,而不是您的对象。但是,您可以使用以下代码将其绑定到您的对象:
initial : function() {
  var loop = setInterval(this.next.bind( this ), 5000);
}
  • bind()上的MDN