IIFE үчүн коопсуздук үчүн чекиттуу үтүр
Келгиле, биздин орунда чакырылуучу функция башында "+" белгисисиз, тегерек кашаа менен оролсун, мындай:
(function() {
console.log(1); // 1 деп чыгарат
})();
num өзгөрмөсү сырттан
берилсин деп коёлу:
let num = 1; // чекиттуу үтүр коюлган
(function() {
console.log(num); // 1 деп чыгарат
})();
Эми чекиттуу үтүрдү коюуну унуттук деп коёлу:
let num = 1
(function() {
console.log(num); //!! ката чыгарат
})();
JavaScript биздин функциябызды биринчи саптын уландысы катары карагандыктан, мындай код ката чыгарат.
Мындай көйгөйлөрдөн сактануу үчүн, орунда чектелип турган функцияны чакырганда ар дайым чекиттуу үтүрдү коюу керек, мындай:
let num = 1
;(function() {
console.log(num); // 1 деп чыгарат
})();
Көйгөй бир аз жасалма сыяктуу сезилет. Чынында, андай эмес. Сиздин баракта бир нече скрипт өздүк файлдардан туташтырылган жагдай болушу мүмкүн. Бул учурда бир файлдын аягында чекиттуу үтүр түшүрүлүп калышы мүмкүн жана экинчи файл орунда чакырылуучу функциядан башталса, бул автоматтык түрдө көйгөйгө алып келет.
Ошондуктан, орунда чакырылуучу функциянын алдында ар дайым-ар дайым чекиттуу үтүрдү коюңуз, ал тургай сиз азыркы учурда көйгөй болбойт деп ишене турган болсоңуз да. Алар кийинчерээк пайда болушу мүмкүн.
Жогоруда айтылгандарды колдонуп, орунда чектелип турган функцияны чакыралы, башында чекиттуу үтүрдү коюп:
;(function() {
console.log(1); // 1 деп чыгарат
})();
Кодду иштетпей эле, консолго эмне чыгаарын аныктаңыз:
let str = 'str';
(function() {
console.log(1);
})();
Кодду иштетпей эле, консолго эмне чыгаарын аныктаңыз:
let str = 'str'
(function() {
console.log(1);
})();