Metoda JavaScript Function bind () umožňuje objektu vypůjčit si metodu z jiného objektu bez kopírování.
Syntaxe bind()
metody je:
func.bind(thisArg, arg1,… argN)
Tady func
je funkce.
parametry bind ()
bind()
Metoda bere v:
thisArg
- Hodnota zadaná jakothis
parametr profunc
. Pokud je vázaná funkce vytvořena pomocí nového operátoru, je ignorována .arg1,… argN
(nepovinné) - Argumenty, které se před vyvoláním argumentů poskytnutých vázané funkci při vyvolánífunc
.
Poznámky:
- Při použití thisArg uvnitř setTimeout se primitivní hodnoty převedou na objekty.
- Pokud
thisArg
není zadán, bude s tímto provádějícím oborem zacházeno jakothisArg
.
Vrátit hodnotu z bind ()
- Vrátí kopii dané funkce se zadanou touto hodnotou a počátečními argumenty (jsou-li k dispozici).
Příklad: Použití 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ýstup
100 1100
Jakmile je metoda předána někde odděleně od objektu - this
je ztracena. Vytvoření vázané funkce z funkce pomocí původního objektu tento problém úhledně vyřeší
Doporučené čtení: Volání funkce JavaScriptu ()