JavaScript: Learn ‘this’ – finding CALL-SITE of a function

Ez egy sorozat első cikke, amelyet csinálok, amely arra összpontosít, hogy megtudja, mi a this valójában a JS-ben van. Annak érdekében, hogy pontosan meghatározzuk, mihez kötődik a this, először meg kell értenünk néhány alapvető fogalmat, amelyekre szükségünk lesz a this kötés meghatározása során a JS-ben, és annak ismerete, hogy mi a függvény hívási helye, az egyik ilyen kulcsfontosságú fogalom.

mielőtt belemerülnénk egy függvény híváshelyébe, először próbáljuk megérteni, miért kell először ismernünk a híváshelyet. Az okok a következők:

  1. valószínűleg valami nagyon könnyű ‘webhely’ egy kóddarabban. Néha azonban bizonyos kódolási minták elrejthetik a valódi híváshelyet. Így a témához kapcsolódó összes kétértelműség eltávolításához meg kell értenie a call-site-ot (nagyon világosan).
  2. ez az egyetlen dolog, ami számít, ha meg akarod érteni, hogyan működik athis kötés.

ennek ellenére most értsük meg a függvény hívási helyét.

általában a függvény hívási helye az a hely, ahonnan az adott függvényt meghívják egy adott kódrészletben’. Így menj arra a helyre, és tudod, hol van a függvény hívási helye!

most a következő kódrészleten keresztül helyezzük el a funkciók híváshelyeit:

Ez könnyű volt! De van egy kis probléma ezzel a módszerrel megtalálni a hívás-site: néha nehéz lehet észrevenni kézzel (például: képzeld el, 1000s sornyi kódot, és meg kell találni a hívás-site kézzel!).

itt jön létre a call-stack. Mi az a call-stack? Ez egy verem (ahogy a neve is sugallja). Mitől? Funkciók. Mely funkciók? Az összes meghívott funkció közül. Mi végre? Ahhoz, hogy eljuthasson oda, ahol most van a végrehajtás során (azaz a végrehajtás jelenlegi pillanatában).

ha megnézi a hívás-verem, akkor az igazi hívás-site belül a függvény meghívása előtt a funkció, amely jelenleg végrehajtó.

most használjuk a call-stack-et, hogy megtaláljuk a fenti kódban használt funkciók híváshelyeit:

gyors tipp: Ahelyett, hogy manuálisan kitalálni a sorrendet, amelyben funkciók hívták (ez hiba hajlamos és fárasztó), akkor használja debugger eszköz a böngészőben, hogy call-stack. A hibakereső megáll a töréspontot beállító sornál, és megmutatja a hívásköteget, azaz megmutatja az összes olyan funkciót, amelyet meghívtak, hogy a kódban megkapja az adott helyet. Ezért a valódi híváshely a második függvény felülről ebben a hívási veremben (azaz a függvényhíváson belül a jelenleg végrehajtó funkció előtt).

így egy függvény hívási helyét 2 módon találhatja meg:

  1. manuálisan pecsételő a helyét, ahol a függvény hívták egy adott darab kódot, vagy
  2. nézi a hívás-stack (lehetőleg a debugger eszközök).

ha kétségei vannak (és általában is), mindig használja a call-stack-et, hogy helyesen azonosítsa a függvény híváshelyét.

Ez az! Ez minden, amit tudnod kell, hogy megtalálja a hívás helyén egy függvény!

következő lépések:

a sorozat következő cikke, JavaScript: Ismerje meg ‘ezt’ – tehát mi is a konstruktor?, a konstruktorok megértésére összpontosít a JS-ben.

köszönöm az olvasást. :- )

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.