Hogyan kell használni az alkalmazás (?), Hívás (?) És kötés (➰) metódusokat a JavaScript-ben

Ebben a cikkben a függvény prototípus láncának alkalmazási, hívási és kötési módszereiről fogunk beszélni. Ezek közül néhány a legfontosabb és leggyakrabban használt fogalmak JavaScript és nagyon szorosan kapcsolódik az ezen kulcsszót.

Tehát, hogy egy felfogni az információ ebben a cikkben, először meg kell ismernie kell a koncepció és használata ez a kulcsszó. Ha már ismeri a dolgot, folytathatja - különben itt hivatkozhat erre a cikkre, majd visszatérhet ide.

Ha meg szeretné tudni az Apply | call | bind alkalmazást, tudnunk kell a JavaScript funkcióiról is, feltételezve, hogy Ön ismeri ezt .

Funkciók

A Function konstruktor új Function objektumot hoz létre. A konstruktor közvetlen felhívása dinamikusan hozhat létre függvényeket, amelyek globális körben végrehajthatók.

Mivel a függvények a JavaScript objektumai, meghívásukat az alkalmazás, a hívás és a kötés módszerek vezérlik .

Annak ellenőrzésére, hogy egy függvény-e Function objektum, használhatjuk-e a következő kódrészletben található kódot, amely true értéket ad vissza.

A globális Function objektumnak nincsenek saját módszerei vagy tulajdonságai. Mivel azonban ez egy függvény, ezért a Function.prototype prototípusláncán keresztül örököl néhány módszert és tulajdonságot. - MDN

A függvény prototípus láncának módszerei a következők:

  • Function.prototype.apply ()
  • Function.prototype.bind ()
  • Function.prototype.call ()
  • Function.prototype.isGenerator ()
  • Function.prototype.toSource ()
  • Object.prototype.toSource
  • Function.prototype.toString ()
  • Object.prototype.toString

Az első háromval foglalkozunk, tehát kezdjük.

Alkalmaz ?

Az Apply () módszer a függvény prototípusának fontos módszere, és más függvények meghívására szolgál, feltéve, hogy ezt a kulcsszó értéket és argumentumokat adják meg tömb vagy tömbszerű objektum formájában.

A tömbszerű objektumok hivatkozhatnak a NodeList-re vagy a függvényen belüli argumentumokra.

Ez azt jelenti, hogy tudjuk hívni minden olyan funkciót, és egyértelműen meg kell határozni, hogy mit ezt meg kell jelölnie a hívó függvényben.

Szintaxis

Visszatérés

Visszaadja az ezzel meghívott függvény eredményét .

Leírás

Az alkalmazási módszer arra szolgál, hogy lehetővé tegye az x objektumhoz tartozó függvény / objektum meghívását és hozzárendelését egy y objektumhoz.

Példák

1.

Amint az az adott részletben látható, azt látjuk, hogy amikor egy tömböt belenyomunk egy másikba, akkor az egész tömböt egy elemként kezeljük, és a tömb változó belsejébe toljuk.

De mi van, ha azt akarjuk, hogy az elemek külön-külön tolódjanak el tömbként? Bizonyára szó szerint n módja van erre, de ahogy tanulunk, alkalmazzuk:

Az adott példában láthatjuk az alkalmazás alkalmazását két adott tömb összekapcsolásában. Az argumentum tömb az elemek tömbje, és ez az argumentum a tömb változóra mutat. Az elemek tömb elemei arra az objektumra ( tömbre ) tolódnak , amelyhez ez tartozikmutatva . Az eredményt akkor kapjuk meg, amikor a második tömb egyedi elemei arra a tömbre tolódnak, amelyre ez mutat.

2.

A JS-ben található max függvényt arra használják, hogy megtalálja a maximális értékű elemet egy adott elemkészletből. De mint a kivonatból láthatjuk, ha az értékek tömb formájában vannak, akkor az eredményt NaN-ként kapjuk meg. Bizonyára a JavaScript-ről beszélünk, ezért ismételten n módszere van erre, de használjuk az alkalmazást.

Most, amikor az alkalmazást és a Math.max () függvényt használjuk, megkapjuk az eredményt. Mint tudjuk, az alkalmazás a tömbben lévő összes értéket egyedi argumentumként veszi fel, majd a max függvényt alkalmazza rájuk. Ez megadja a tömb maximális értékét.

Egy érdekes dolog, hogy pont itt az, hogy a helyén ezt már használt null. Mivel a argumentum a számtömb, még akkor is, ha ezt bevezetjük, ugyanarra a tömbre mutat, és ugyanazt az eredményt kapjuk. Ezért ilyen esetekben nullát használhatunk ennek helyett . Ez azt mutatja, hogy ez az argumentum az Apply függvényben opcionális argumentum.

Hívás

A call () metódust egy függvény meghívására adják meg egy adott ezzel és a hozzá adott argumentumokkal.

Ez azt jelenti, hogy tudjuk hívni minden olyan funkciót, amelyek pontosan megadják a hivatkozás, hogy ez meg kell jelölnie a hívó függvényben.

Ez nagyon hasonlít az alkalmazásra, az egyetlen különbség az, hogy alkalmazza az argumentumokat tömb vagy tömbszerű objektumok formájában veszi fel, és itt az érvek külön-külön vannak megadva.

Szintaxis

Visszatérés

A függvény meghívásának eredménye a megadott thisértékkel és argumentumokkal.

Leírás

A hívási módszer lehetővé teszi egy x objektumhoz tartozó függvény / objektum meghívását és hozzárendelését egy y objektumhoz.

Példák

1.

Ez egy példa a konstruktor láncolására. Mint láthatjuk, minden függvényben a termék konstruktorát hívják meg, és hívás felhasználásával a Product objektum tulajdonságai a Pizza, illetve a Toy objektumokkal vannak láncolva.

Amikor új példányok jönnek létre a Pizza és a Toy objektumokról, a paraméterek meg vannak adva névként, árként és kategóriában. A kategória csak a definícióban kerül alkalmazásra, de a név és az ár a Product objektum láncos konstruktorával kerül alkalmazásra, ahogyan azokat a Product objektum definiálja és alkalmazza. Kicsit további finomítással elérhetjük az öröklést.

2.

A fenti részletben meghatároztuk az alvás nevű függvényt. Egy tömbválaszból áll, amely olyan elemekből áll, amelyek ezt a kulcsszót használva tulajdonságokat címeznek. A funkción kívüli külön objektumban vannak meghatározva.

A funkció alvás hívják a tárgy obj érvként. Amint láthatjuk, az obj tulajdonságai ebben az állati és ennek az alvási időtartamban vannak megadva , és a teljes mondatot kimenetként kapjuk meg.

Bind➰

A bind () metódus új funkciót hoz létre, amelynek meghívásakor thiskulcsszava a megadott értékre van állítva, egy adott argumentumsorozattal megelőzve az új függvény meghívásakor megadottakat. - MDN

Szintaxis

Visszatérés

A Bind a függvény egy példányát adja vissza, mellékelve ezt és az argumentumokat.

Leírás

A kötési függvény hasonlít a hívási függvényhez, a fő különbség az, hogy a kötés új funkciót ad vissza, míg a hívás nem.

Szerint ECMAScript 5 leírások, a függvény által visszaadott kötődnek egy különleges fajta egzotikus függvény objektum (ahogy hívják) nevű Bound funkció (BF) . A BF beburkolja az eredeti függvényobjektumot. BF hívása futtatja a benne lévő becsomagolt függvényt.

Példák

1.

A fenti részletben definiáltunk egy x változót és egy modul nevű objektumot. Tartalmaz továbbá egy x nevű tulajdonságot és egy másik tulajdonságot, amelynek megfelelő értéke egy olyan függvény, amely visszaadja az x értékét .

Amikor a getX függvényt meghívjuk , az objektumon belül definiált x értékeket adja vissza , nem pedig az x globális hatókörben.

Egy másik változó van deklarálva a globális hatókörben, amely meghívja a getX függvényt a modul objektumból. De mivel a változó globális hatókörben van, ez a getX pontban a globális x-re mutat, és ezért a 9 visszakerül.

Meghatározunk egy másik változót, amely meghívja az előző függvényt, de ezúttal az említett függvényt a modul objektummal köti össze . Ez a kötés visszaadja az objektumon belüli x értékét . A kötés miatt ez a függvényben az objektumban lévő x értékre mutat, és nem a globális x-re . Ezért kimenetként 81-et kapunk

Következtetés

Most, hogy megtanultuk a módszerek alapjait, még mindig kissé zavart lehet, hogy miért van 3 különböző funkció, amelyek szinte ugyanazt csinálják. Ennek a fogalomnak a tisztázása érdekében különböző helyzetekkel és forgatókönyvekkel kell gyakorolnia, hogy alaposabban megismerhesse, hol és hogyan használhatók. Biztosan tisztábbá és erősebbé teszik a kódot.

Ha tetszett ez a cikk, kérlek tapsolj? és követni? többért.