Metóda JavaScript Function bind () umožňuje objektu požičať si metódu od iného objektu bez kopírovania.
Syntax bind()
metódy je:
func.bind(thisArg, arg1,… argN)
Tu func
je funkcia.
parametre bind ()
bind()
Metóda berie v:
thisArg
- Hodnota poskytnutá akothis
parameter prefunc
. Ak je viazaná funkcia vytvorená pomocou nového operátora, ignoruje sa .arg1,… argN
(voliteľné) - Argumenty, ktoré sa majú pred argumentmi poskytnutými viazanej funkcii pri vyvolanífunc
.
Poznámky:
- Pri použití thisArg vo vnútri setTimeout sa primitívne hodnoty prevedú na objekty.
- Ak
thisArg
nie je zadané, považuje sa to za vykonávajúci rozsah zathisArg
.
Vrátiť hodnotu z bind ()
- Vráti kópiu danej funkcie so zadanou touto hodnotou a počiatočnými argumentmi (ak sú poskytnuté).
Príklad: Použitie 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
Výkon
100 1 100
Akonáhle je metóda odovzdaná niekde oddelene od objektu - this
je stratená. Vytvorenie viazanej funkcie z funkcie pomocou pôvodného objektu tento problém úhľadne vyrieši
Odporúčané čítanie: Volanie funkcie JavaScript ()