Функція JavaScript bind ()

Метод bind () функції JavaScript дозволяє об'єкту позичати метод у іншого об'єкта без копіювання.

Синтаксис bind()методу:

 func.bind(thisArg, arg1,… argN)

Тут funcє функція.

bind () Параметри

bind()Метод приймає в:

  • thisArg- Значення, надане як thisпараметр для func. Це ігнорується, якщо зв’язана функція створюється за допомогою нового оператора.
  • arg1,… argN(необов’язково) - Аргументи, що додаються до аргументів, наданих пов’язаній функції під час виклику func.

Примітки:

  • При використанні thisArg всередині setTimeout примітивні значення перетворюються в об'єкти.
  • Якщо thisArgне вказано, це з виконуючої області обробляється як thisArg.

Повернути значення з bind ()

  • Повертає копію заданої функції із зазначеним цим значенням та початкові аргументи (якщо передбачені).

Приклад: Використання 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

Вихідні дані

 100 1 100

Як тільки метод передається десь окремо від об'єкта - thisвін втрачається. Створення зв’язаної функції з функції, використовуючи оригінальний об’єкт, акуратно вирішує цю проблему

Рекомендуємо прочитати: Виклик функції JavaScript ()

Цікаві статті...