1
resposta

Boa prática

Se a intenção era deixar o código mais legível, porque criar duas funções (moveFrame() e nextFrame()) dentro de outra (createSprite)?

Além disso, por que restringir o escopo destas funções à função createSprite()?

Além disso, é uma boa prática criar estas "subfunções"?

1 resposta

Boa tarde, Jorge! Como vai?

Vou responder suas questões por partes.

Se a intenção era deixar o código mais legível, porque criar duas funções (moveFrame() e nextFrame()) dentro de outra (createSprite)?

Separar melhor as responsabilidades entre as funções. Enquanto a moveFrame() sabe como passar de um frame X para um frame Y a nextFrame() sabe especificamente como passar de um frame Z para o frame seguinte Z+1. Perceba que são responsabilidades diferentes!

Além disso, por que restringir o escopo destas funções à função createSprite()? Além disso, é uma boa prática criar estas "subfunções"?

Sim é boa prática, em determinados casos (como esse abordado pelo mestre Flávio em seu curso). Ele fez isso pq o JS só tem 2 tipos de escopos: global e funcional. Se uma função está em escopo global ela pode ser alterada por qualquer outro código JS que seja carregado. Agora, se uma função está dentro de outra, então a subfunção estará encapsulada de modo que não possa ser alterada em escopo global!

A forma como vc irá desenvolver irá depender da situação que vc estiver inserido.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos!