JavaScript Function bind () -menetelmän avulla objekti voi lainata menetelmää toisesta kohteesta kopioimatta.
Menetelmän syntaksi bind()
on:
func.bind(thisArg, arg1,… argN)
Tässä func
on funktio.
bind () -parametrit
bind()
Menetelmä vie:
thisArg
-this
Parametriksi annettu arvo parametrillefunc
. Se ohitetaan, jos sidottu toiminto luodaan uudella operaattorilla.arg1,… argN
(valinnainen) - Argumentit, jotka perustuvat sidottuun funktioon tarjottuihin argumentteihin kutsuttaessafunc
.
Huomautuksia:
- Kun käytät tätä argentia setTimeoutin sisällä, primitiiviset arvot muunnetaan objekteiksi.
- Jos sitä
thisArg
ei ole määritetty, tätä suoritettavan laajuuden kohdalla käsitelläänthisArg
.
Palautusarvo sidonnasta ()
- Palauttaa kopion annetusta funktiosta, jossa on määritetty tämä arvo ja alkuperäiset argumentit (jos toimitettu).
Esimerkki: sitomisen () käyttö
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
Tuotos
100 1100
Kun menetelmä on siirretty jonnekin erillään kohteesta - this
menetetään. Sidotun funktion luominen toiminnosta alkuperäisen objektin avulla ratkaisee tämän ongelman siististi
Suositeltava lukeminen: JavaScript-toimintokutsu ()