JS-0408 - JavaScript Completo ES6 - Functions

JS-0408 - JavaScript Completo ES6 - Functions
Publicado em 15/03/2021 18h42
Visualizações: 494

O construtor de funções

Function é o construtor criador de todas funções em JS, permitindo a estas, a herança de suas propriedades e métodos. Desta forma, a declaração de uma função pode ser escrita também através de um objeto Function. Ex:

JS-0408 - JavaScript Completo ES6 - Functions

Logicamente declarar uma função é mais simples do que criar um objeto (embora esteja sendo criado de qualquer jeito), mas a escrita fica mais simples apenas declarando uma função.

Algumas das propriedades e dos métodos do construtor Function que podemos utilizar nas funções são as seguintes:

  • length: retorna o total de argumentos de uma função, assim, areaQuadrado.lenght retorna 1;
  • name: retorna uma string com o nome da função, ainda no exemplo acima, areaQuadrado.name retorna "areaQuadrado";
  • call():  seguindo o formato function.call(this, arg1, arg2, ...) este método executa a função, contudo, permite a substituição da referência this, desde que seja algo parecido estruturalmente com a referência (um objeto do mesmo tipo ou propriedades e métodos que não entrarão em conflito no escopo da função). No exemplo a seguir, será criado um objeto programador e uma função será declarada referenciando this, no entanto, this se refere neste escopo ao objeto máximo Window, que não possui as propriedades nome e linguagem. Desta forma, o método call permite a substituição da referência:
JS-0408 - JavaScript Completo ES6 - Functions

Um novo objeto pode ser passado como parâmetro de call, e os demais parâmetros requeridos pela função, caso existam, deverão ser incluidos após o objeto. Ex:

JS-0408 - JavaScript Completo ES6 - Functions


O call é normalmente utilizado nas funções do protótipo construtor Array, permitindo a extensão de todos os métodos de Array a objetos Array e array-like.

  • apply(): no formato apply(this, [arg1, arg2, ...]), funciona como o call, a passagem de argumentos, que são passados através de um array, permitindo a manipulação da referência e passagem de argumento de forma dinâmica em casos em que o parâmetro seja uma lista, o que não pode ser aplicado ao call. Ex:
JS-0408 - JavaScript Completo ES6 - Functions
JS-0408 - JavaScript Completo ES6 - Functions

O bind não necessita que todos os parâmetros sejam passados em si, permitindo que os argumentos necessários, ou parte deles, sejam passados no momento da execução da função. Ex:

JS-0408 - JavaScript Completo ES6 - Functions

Desta forma, é possível definir parâmetros comuns como padrão e a inserção dos demais parâmetros seria flexibilizada.

Veja também:

Confira mais artigos relacionados

Este website utiliza cookies próprios e de terceiros a fim de personalizar o conteúdo, melhorar a experiência do usuário, fornecer funções de mídias sociais e analisar o tráfego. Para continuar navegando você deve concordar com nossa Política de Privacidade

Sim, eu aceito. Não, eu não aceito.