Podpičje za varnost v IIFE
Naj bo naša takoj klicana funkcija ne z plusom na začetku, ampak ovita z okroglimi oklepaji, takole:
(function() {
console.log(1); // izpiše 1
})();
Naj bo spremenljivka num definirana zunaj
funkcije:
let num = 1; // podpičje je postavljeno
(function() {
console.log(num); // izpiše 1
})();
Recimo, da smo pozabili postaviti podpičje:
let num = 1
(function() {
console.log(num); //!! vrne napako
})();
Izkazalo se je, da bo takšna koda vrnila napako, ker JavaScript našo funkcijo dojema kot nadaljevanje ukaza prve vrstice.
Da se izognemo takšnim težavam, je treba pred klicem funkcije na mestu vedno postaviti podpičje, takole:
let num = 1
;(function() {
console.log(num); // izpiše 1
})();
Zdi se, da je problem nekoliko narejen. Pravzaprav ni tako. Lahko pride do takšne situacije, da na vaši strani povezujete več skript iz ločenih datotek. V tem primeru je lahko na koncu ene datoteke izpuščeno podpičje in to samodejno povzroči težavo, če se druga datoteka začne s klicem funkcije na mestu.
Zato vedno-vedno postavite podpičje pred klicem funkcije na mestu, tudi če ste trenutno prepričani, da težav ne bo. Te se lahko pojavijo kasneje.
Uporabimo zgoraj povedano in pokličimo funkcijo na mestu, tako da na začetku postavimo podpičje:
;(function() {
console.log(1); // izpiše 1
})();
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
let str = 'str';
(function() {
console.log(1);
})();
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
let str = 'str'
(function() {
console.log(1);
})();