Dado o código abaixo na Linguagem JavaScript:               ...

Próximas questões
Com base no mesmo assunto
Q3128898 Programação

Dado o código abaixo na Linguagem JavaScript:


                                          Imagem associada para resolução da questão


Assinale a alternativa que apresenta a sequência correta da saída do programa.


Alternativas

Comentários

Veja os comentários dos nossos alunos

Código:

const counter1 = outer();

counter1();

counter1();

const counter2 = outer();

counter2();

counter1();

Execução do Código

1. Criação de counter1:

A chamada outer() cria um novo escopo e inicializa count = 0 para counter1.

2. Chamadas de counter1:

Primeira chamada: Incrementa count para 1 e imprime 1.

Segunda chamada: Incrementa count para 2 e imprime 2.

3. Criação de counter2:

Outra chamada a outer() cria um novo escopo, com outro count inicializado como 0 para counter2.

4. Chamadas de counter2 e counter1:

Primeira chamada de counter2: Incrementa count no escopo de counter2 para 1 e imprime 1.

Chamada adicional de counter1: Retoma o escopo de counter1, onde count já era 2. Incrementa para 3 e imprime 3.

---

Sequência de Saída

O programa imprimirá:

1

2

1

3

---

Resumo

Cada chamada de outer() cria um novo escopo para a variável count.

counter1 e counter2 operam em escopos independentes.

A chamada final a counter1() retoma o escopo inicial de counter1, onde o valor de count já havia sido incrementado previamente.

o gabarito deveria ser 1213. A clousure do contador1 vai manter em memória o valor 2, ele vai ter um novo contador que resulta em 1 e quando for chamado o contador1 novamente, no passo final, o valor é 3, resultando em 1213.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo