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 46sen 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 codejoten koodi on turvallinen.

Lisää tietoa

  • Välittömästi kutsuttu toimintoilmaisu Wikipediassa
  • Mitä JavaScript-kirjastojen johtava puolipiste tekee?