IIFE „JavaScript“: kas yra iškart iškviečiamos funkcijų išraiškos?

Funkcijos pareiškimas

Funkcija, sukurta su funkcijos deklaracija, yra Funkcijos objektas ir turi visas Funkcijos objektų savybes, metodus ir elgesį. Pavyzdys:

 function statement(item){ console.log('Function statement example '+ item); }

Funkcijos išraiška

Funkcijos išraiška yra panaši į funkcijos teiginį, išskyrus tai, kad funkcijos pavadinimo galima praleisti, kad būtų sukurtos anoniminės funkcijos. Pavyzdys:

 var expression = function (item){ console.log('Function expression example '+ item); }

Iškart iškviestos funkcijų išraiškos

Netrukus, kai tik sukuriama funkcija, ji pati vadinasi. Žemiau pateiktame pavyzdyje kintamasis „iife“ išsaugos eilutę, kurią grąžins vykdymas.

 var iife = function (){ return 'Immediately Invoked Function Expressions(IIFEs) example '; }(); console.log(iife); // 'Immediately Invoked Function Expressions(IIFEs) example '

Pareiškimas prieš IIFE visada turėtų baigtis a; arba tai sukels klaidą.

Blogas pavyzdys :

var x = 2 //no semicolon, will throw error (function(y){ return x; })(x); //Uncaught TypeError: 2 is not a function

Kodėl verta naudoti iškart iškviestas funkcijų išraiškas?

 (function(value){ var greet = 'Hello'; console.log(greet+ ' ' + value); })('IIFEs');

Ankstesniame pavyzdyje, kai „javascript“ variklis vykdo aukščiau esantį kodą, jis pamatys kodą ir sukurs funkcinį objektą IIFE atmintyje sukurdamas visišką vykdymo kontekstą. Kai jis pasiekia liniją 46dėl kurios funkcijos yra iškviečiamas, skrendant sukuriamas naujas vykdymo kontekstas, todėl sveikinimo kintamasis patenka į tą funkcijos vykdymo kontekstą, o ne į globalų, todėl jis yra unikalus. This ensures that code inside IIFE does not interfere with other code or be interfered by another codetodėl kodas yra saugus.

Daugiau informacijos

  • Iškart iškviečiama funkcijos išraiška Vikipedijoje
  • Ką daro pagrindinis „JavaScript“ bibliotekų kabliataškis?