return {
nextFrame: nextFrame
};
Isso está retornando um objeto que tem uma função(nextFrame)? Sem isso, não teria como chamar a função nextFrame no gallows.html? Caso tenha como chamar, como teria de ser feito?
Obrigado.
return {
nextFrame: nextFrame
};
Isso está retornando um objeto que tem uma função(nextFrame)? Sem isso, não teria como chamar a função nextFrame no gallows.html? Caso tenha como chamar, como teria de ser feito?
Obrigado.
Oi Thiago, tudo bem? Para a primeira pergunta a resposta me parece um sim. Para a segunda, eu preciso de mais informações (cola os códigos completos relacionados a dúvida aqui pra gente ver direitinho por favor).
Tenta sempre deixar a dúvida bem clara aqui tá bem? Inclusive adicionando os códigos referentes a ela, assim a gente centraliza tudo aqui e te ajuda mais rapidamente.
Quando você faz
return {
nextFrame: nextFrame
};
Esta retornando um objeto que possui a propriedade nexFrame
. Mas qual é o valor dessa propriedade? A função nextFrame
. É através desse objeto retornado que você tem acesso à função nextFrame
que esta encapsulada. Não há outra maneira de você acessar a função sem que seja dessa forma.
Veja um exemplo:
function teste() {
function grita() {
alert('oi');
}
return { x: grita };
}
var objeto = teste();
objeto.x(); // exibe oi
grita(); // undefined
Neste exemplo, você retornou um objeto com a propriedade x
que guarda uma referência para a função grita
. Então, quando chamar x
, estará chamando grita
. Mas você não pode chamar grita()
diretamente, pois ela esta encapsulada pelo escopo da função teste
.
Agora, no lugar de ficar criando propriedades com novos nomes, usamos o mesmo da função que desejamos exportar:
function teste() {
function grita() {
alert('oi');
}
return { grita: grita };
}
var objeto = teste();
objeto.grita(); // exibe oi
grita(); // undefined
Sucesso e bom estudo meu aluno!
Wanderson, obrigado pela dica, na proxima serei mais preciso em minhas duvidas.
Flávio, perfeita sua explicação, so me tira uma dúvida: é uma boa prática manter o nome da propriedade de forma igual com o nome da função referenciada?
Oi Thiago!
Sim é, porque sua intenção é deixar acessível a função e nada mais justo do que usar o mesmo nome.
Obrigado, Flávio.