SóProvas


ID
1404469
Banca
FGV
Órgão
PROCEMPA
Ano
2014
Provas
Disciplina
Programação
Assuntos

A função a seguir, em Javascript, destina-se a coletar referências a funções a serem executadas após a carga de uma página HTML: 

                                    function register_load_function (func)
                                    {
                                          if  (typeof (window.onload) != "function")
                                          {
                                               window.onload = func;
                                           }
                                           else
                                           {
                                                var old = window.onload;
                                                window.onload = function ()
                                                {
                                                         func ();
                                                         if (old)
                                                             old ();
                                                }
                                           }
                                    } 

No preâmbulo da página, considere as chamadas:
register_load_function (f);
register_load_function (g);
register_load_function (h); 

Após a carga da página, o interpretador Javascript executará a função definida em window.onload, o que provocará a execução das funções f, g e h na seguinte ordem

Alternativas
Comentários
  • O que o código faz é definir na propriedade window . onload uma função que executa a função passada como parâmetro e a função anteriormente armazenada na propriedade window . onload. A ultima linha register_load_function (h); que irá definir a primeira função a ser executada que é a função "h" e a função que contem as anteriores. Acompanhe a execução abaixo:

    Na primeira chamada, ao entrar no primeiro "if" a propriedade window . onload terá o valor da função f.Nas chamadas seguintes o bloco do "else" atribui ao window . onload sempre uma nova função. Essa função chama a função passada como parâmetro e em seguida a função anterior. Na última linha register_load_function (h); o else irá definir uma função que chama a função h e em seguida as funcoes anteriormente definidas no else. Essa função executa as funções g e f.