JavaScript Function bind () metode ļauj objektam aizņemties metodi no cita objekta, nekopējot.
Metodes sintakse bind()
ir šāda:
func.bind(thisArg, arg1,… argN)
Šeit func
ir funkcija.
bind () parametri
bind()
Metode ņem in:
thisArg
- vērtība, kas norādīta kāthis
parametrsfunc
. Tas tiek ignorēts, ja saistītā funkcija tiek izveidota, izmantojot jaunu operatoru.arg1,… argN
(pēc izvēles) - argumenti, kuru pamatā ir argumenti, kas sniegti saistītai funkcijai, atsaucotiesfunc
.
Piezīmes:
- Izmantojot thisArg iekš setTimeout, primitīvās vērtības tiek pārveidotas par objektiem.
- Ja
thisArg
nav norādīts, izpildes sfērā tas tiek uzskatīts parthisArg
.
Atgriezeniskā vērtība no saistīšanas ()
- Atgriež norādītās funkcijas kopiju ar norādīto šo vērtību un sākotnējos argumentus (ja tādi ir).
Piemērs: bind () izmantošana
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
Rezultāts
100 1 100
Kad metode tiek nodota kaut kur atsevišķi no objekta - this
tiek pazaudēta. Saistītās funkcijas izveidošana no funkcijas, izmantojot sākotnējo objektu, glīti atrisina šo problēmu
Ieteicams lasīt: JavaScript funkciju izsaukums ()