我正在尝试使用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();
浏览器控制台中出现问题:
内存不足
console.log返回undefined
由于这个关键字,可能会出现问题?
我的代码出了什么问题?
setInterval()
执行时的回调绑定到全局对象而不是对象.但是,您可以使用此代码将其绑定到您的对象:
initial : function() { var loop = setInterval(this.next.bind( this ), 5000); }
MDN上 bind()