IIFE JavaScriptissä: Mitä ovat välittömästi kutsutut funktiolausekkeet?
Toimintalauseke
Funktiodeklaruksella luotu toiminto on Funktio-objekti ja sillä on kaikki Funktio-objektien ominaisuudet, menetelmät ja käyttäytyminen. Esimerkki:
function statement(item){ console.log('Function statement example '+ item); }
Funktion ilmaisu
Funktion lauseke on samanlainen kuin funktion lause, paitsi että funktion nimi voidaan jättää anonyymien funktioiden luomiseksi. Esimerkki:
var expression = function (item){ console.log('Function expression example '+ item); }
Välittömästi kutsutut funktiolausekkeet
Heti kun toiminto on luotu, se itse itse ei tarvitse vedota erikseen. Alla olevassa esimerkissä muuttuja iife tallentaa merkkijonon, jonka funktion suoritus palauttaa.
var iife = function (){ return 'Immediately Invoked Function Expressions(IIFEs) example '; }(); console.log(iife); // 'Immediately Invoked Function Expressions(IIFEs) example '
Lausunnon ennen IIFE: tä tulisi aina päättyä a: hon; tai se heittää virheen.
Huono esimerkki :
var x = 2 //no semicolon, will throw error (function(y){ return x; })(x); //Uncaught TypeError: 2 is not a function
Miksi käyttää välittömästi kutsuttuja funktiolausekkeita?
(function(value){ var greet = 'Hello'; console.log(greet+ ' ' + value); })('IIFEs');
Yllä olevassa esimerkissä, kun javascript-moottori suorittaa yllä olevan koodin, se luo globaalin suoritusyhteyden, kun se näkee koodin ja luo IIFE: n muistiin toiminto-objektin. Ja kun se saavuttaa linjan 46
sen funktion vuoksi, jota kutsutaan, uusi suorituskonteksti luodaan lennossa ja niin tervehdysmuuttuja menee funktion suorituskontekstiin, ei globaaliin, mikä tekee siitä ainutlaatuisen. This ensures that code inside IIFE does not interfere with other code or be interfered by another code
joten koodi on turvallinen.
Lisää tietoa
- Välittömästi kutsuttu toimintoilmaisu Wikipediassa
- Mitä JavaScript-kirjastojen johtava puolipiste tekee?