JavaScript Function bind ()

O método bind () da função JavaScript permite que um objeto pegue um método emprestado de outro objeto sem copiar.

A sintaxe do bind()método é:

 func.bind(thisArg, arg1,… argN)

Aqui funcestá uma função.

Parâmetros bind ()

O bind()método inclui:

  • thisArg- O valor fornecido como thisparâmetro para func. Ele será ignorado se a função associada for criada usando o novo operador.
  • arg1,… argN(opcional) - Argumentos a preceder a argumentos fornecidos para a função associada ao invocar func.

Notas:

  • Ao usar thisArg dentro de setTimeout, os valores primitivos são convertidos em objetos.
  • Se thisArgnão for especificado, o this do escopo de execução é tratado como thisArg.

Valor de retorno de bind ()

  • Retorna uma cópia da função fornecida com o valor especificado e argumentos iniciais (se fornecidos).

Exemplo: usando bind ()

 this.x = 1; // "this" here is the global window object in browser const obj = ( x: 100, getX: function () ( return this.x; ), ); console.log(obj.getX()); // 100 const retrieveX = obj.getX; // the function gets invoked at the global scope console.log(retrieveX()); // 1 // Create a new function with 'this' bound to obj // global variable 'x' with obj's property 'x' are two separate entities const boundGetX = retrieveX.bind(obj); console.log(boundGetX()); // 100

Resultado

 100 1 100

Uma vez que um método é passado em algum lugar separado do objeto - thisé perdido. A criação de uma função vinculada a partir da função, usando o objeto original, resolve esse problema perfeitamente

Leitura recomendada: chamada de função JavaScript ()

Artigos interessantes...