⊗jsPmFCPS 273 of 505 menu

Pontosvesszõ a biztonságos IIFE-hez

Most tegyük fel, hogy az azonnal meghívott függvényünk ne pluszjellel kezdõdjön, hanem kerek zárójelekbe legyen becsomagolva, így:

(function() { console.log(1); // kiírja 1-et })();

Tegyük fel, hogy a num változó a függvényen kívül van definiálva:

let num = 1; // pontosvesszõ van megadva (function() { console.log(num); // kiírja 1-et })();

Most tegyük fel, hogy elfelejtettük megadni a pontosvesszõt:

let num = 1 (function() { console.log(num); //!! hibát jelez })();

Kiderül, hogy ez a kód hibát fog jelezni, mivel a JavaScript a függvényünket az elsõ sor parancsának folytatásaként értelmezi.

Az ilyen problémák elkerülése érdekében az azonnal meghívott függvény elõtt mindig pontosvesszõt kell tenni, így:

let num = 1 ;(function() { console.log(num); // kiírja 1-et })();

Úgy tûnhet, hogy a probléma kissé mesterkélt. Valójában nem az. Elõfordulhat olyan helyzet, hogy az oldalon több, különálló fájlokból származó szkript van betöltve. Ebben az esetben az egyik fájl végén lehet, hogy hiányzik a pontosvesszõ, és ez automatikusan problémához vezet, ha a második fájl egy azonnal meghívott függvénnyel kezdõdik.

Ezért mindig-mindig tegyen pontosvesszõt az azonnal meghívott függvény elé, még akkor is, ha jelenleg biztos benne, hogy nem lesz probléma. Azok késõbb is felmerülhetnek.

Alkalmazzuk a fentieket, és hívjuk meg a függvényt azonnal, az elejére pontosvesszõt téve:

;(function() { console.log(1); // kiírja 1-et })();

Határozza meg, kód futtatása nélkül, hogy mit ír ki a konzolra:

let str = 'str'; (function() { console.log(1); })();

Határozza meg, kód futtatása nélkül, hogy mit ír ki a konzolra:

let str = 'str' (function() { console.log(1); })();
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás