Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Por que é necessário fazer o retorno da função como objeto?

var createSprite = function (seletorCss) {

  var hasNext = function () {

    return current + 1 <= last;

  };

  var moveFrame = function (from, to) {

    $el.removeClass(from).addClass(to);

  };

  var nextFrame = function () {

    if(hasNext())
      moveFrame(frames[current],frames[++current]);
  }

  var reset = function () {
    moveFrame(frames[current], frames[0]);
    current = 0;
  }


  var isFinished = function () {
    return !hasNext();
  }
  var $el = $(seletorCss);

  var frames = [
    'frame1', 'frame2', 'frame3', 'frame4', 'frame5', 'frame5', 'frame6',
    'frame7', 'frame8', 'frame9'
  ]

  var current = 0; //frame atual
  var last = frames.length - 1; //último frame

  $el.addClass(frames[current]);

  return {
    nextFrame: nextFrame,
    reset: reset,
    isFinished: isFinished
  }
}
3 respostas
solução!

Boa noite, Geovane! Como vai?

Repare que nessa função é necessário retornar três informações! No entanto, sabemos que só podemos dar um return por função. Sendo assim, para podermos retornar as três informações em um único return é preciso colocar tudo dentro de um objeto JavaScript e retornar ele.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos!

Agora sim fez sentido! Valeu!

Por nada, Geovane! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!