在第一个日志后返回未定义的函数

Function returning undefined after first log

本文关键字:未定义 函数 返回 第一个 日志      更新时间:2023-09-26

我正在尝试设置图像交换器功能。下面是我到目前为止的代码:

var imageChanger = function(start, end) {
var start = 1;
var end = 22;
return {
    count: function(url) {
        var self = this;
        if(start > end) {
            start = 1;
        }
        console.log(url);
        console.log(start++);
        imageSwapper = setTimeout( function() {
            self.count();
        }, 2000)
    },
    stopCount: function() {
        clearTimeout(imageSwapper);
    }
}
}
如您所见,这是一个接受两个参数的函数。然后它返回一个带有两个方法的自己的对象。当我在初始imageChanger函数调用后调用count方法并将参数传递给url时,它只记录我传递一次的内容,然后当setTimeout函数运行时,未定义后续时间。 我不确定我在这里做错了什么。为什么这个count函数在第一个日志后返回未定义??

在setTimeout中,您应该使用url参数而不是无参数调用self.count,即

self.count(url);