„JavaScript Function bind“) metodas leidžia objektui skolintis metodą iš kito objekto nekopijuojant.
bind()
Metodo sintaksė yra tokia:
func.bind(thisArg, arg1,… argN)
Čia func
yra funkcija.
bind () parametrai
bind()
Metodas trunka:
thisArg
- reikšmė, pateikta kaipthis
parametrasfunc
. Jo nepaisoma, jei susieta funkcija sukuriama naudojant naują operatorių.arg1,… argN
(neprivaloma) - argumentai, kurie priklauso nuo argumentų, pateiktų susietai funkcijai, kai iškviečiamafunc
.
Pastabos:
- Naudojant „thisArg“ „setTimeout“ viduje, primityvios reikšmės konvertuojamos į objektus.
- Jei
thisArg
nenurodyta, tai vykdymo sritis traktuojama kaipthisArg
.
Grąžinimo vertė iš „bind“ ()
- Grąžina nurodytos funkcijos kopiją su nurodyta šia verte ir pradiniais argumentais (jei numatyta).
Pavyzdys: „bind“ () naudojimas
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
Rezultatas
100 1 100
Kai metodas bus perduotas kur nors atskirai nuo objekto, jis this
bus prarastas. Sukūrus susietą funkciją iš funkcijos, naudojant pradinį objektą, tvarkingai išsprendžiama ši problema
Rekomenduojamas skaitymas: „ JavaScript“ funkcijos iškvietimas ()