Javascript此关键字返回undefined

时间:2015-12-29 13:44:32

标签: javascript

我尝试使用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返回undefined
  3. 由于此关键字可能会出现问题吗?

    我的代码出了什么问题?

1 个答案:

答案 0 :(得分:5)

执行时setInterval()的回调绑定到全局对象而不是对象。但是,您可以使用此代码将其绑定到您的对象:

initial : function() {
  var loop = setInterval(this.next.bind( this ), 5000);
}