Metoda bind () funkcji JavaScript umożliwia obiektowi pożyczenie metody z innego obiektu bez kopiowania.
Składnia bind()
metody to:
func.bind(thisArg, arg1,… argN)
Tutaj func
jest funkcja.
bind () Parametry
bind()
Sposób odbywa się:
thisArg
- wartość podana jakothis
parametr dlafunc
. Jest ignorowany, jeśli powiązana funkcja jest tworzona przy użyciu operatora new .arg1,… argN
(opcjonalne) - Argumenty do dołączenia przed argumentami dostarczonymi do powiązanej funkcji podczas wywoływaniafunc
.
Uwagi:
- Używając thisArg wewnątrz setTimeout, wartości pierwotne są konwertowane na obiekty.
- Jeśli
thisArg
nie jest określony, to zakresu wykonywania jest traktowane jakothisArg
.
Wartość zwracana z bind ()
- Zwraca kopię podanej funkcji z określoną tą wartością i argumentami początkowymi (jeśli zostały podane).
Przykład: użycie 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
Wynik
100 1 100
Gdy metoda zostanie przekazana gdzieś oddzielnie od obiektu - this
zostaje utracona. Utworzenie funkcji związanej z funkcji przy użyciu oryginalnego obiektu starannie rozwiązuje ten problem
Zalecana lektura: wywołanie funkcji JavaScript ()