Segue abaixo a solução dada pelo professor:
function createSprite(selector) {
function hasNext() {
return current + 1 <= last;
}
function moveFrame (from, to) {
$el.removeClass(from)
.addClass(to);
}
function nextFrame() {
if (hasNext()) moveFrame (frames[current], frames[++current]);
}
var $el = $(selector);
var frames = [
'frame1', 'frame2', 'frame3', 'frame4', 'frame5',
'frame6', 'frame7', 'frame8', 'frame9'
];
var current = 0;
var last = frames.length - 1;
$el.addClass(frames[current]);
return { nextFrame: nextFrame };
}
nao entendi esse last, como ele sabe que é o ultimo do array? o certo nao seria array.length - 1?