我尝试使用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();
浏览器控制台出现问题:
由于此关键字可能会出现问题吗?
我的代码出了什么问题?
答案 0 :(得分:5)
执行时setInterval()
的回调绑定到全局对象而不是对象。但是,您可以使用此代码将其绑定到您的对象:
initial : function() {
var loop = setInterval(this.next.bind( this ), 5000);
}