Даъват кардани функсия дар ҷой дар JavaScript
Акнун мо усулеро меомӯзем, ки имкон медиҳад функсияро ҳамон дар ҷои эълон карданаш даъват кунем. Ин сохтор Immediately Invoked Function Expression (IIFE) номида мешавад.
Биёед ба мисол назар кунем. Бигзор мо чунин ифодаи функсионалӣ дошта бошем:
let func = function() {
console.log('!');
};
func(); // '!'-ро хориҷ мекунад
Акнун биёед функсияамонро ба тағирёбанда таъин накарда, ҳамон ҳол, "дар ҷой" даъват кунем. Барои ин баъд аз функсия қавсҳои гирд мегузорем:
+function() {
console.log('!'); // '!'-ро хориҷ мекунад
}();
Дар ин ҳолат мавҷудияти аломати қош (+)-ро шарти зарурӣ мебошад, зеро бе он функсия ба Function Declaration табдил меёбад, ва онҳоро дар ҷой (ҳатто бе ном) даъват кардан мумкин нест. Албатта, ба ҷои қош метавон ҳар чизро гузошт, - асос ин аст, ки функсияи мо ифодаи функсионалӣ бошад.
Муайян кунед, бидуни оғоз кардани рамз, чӣ ба консоль хориҷ карда мешавад:
!function() {
console.log('!');
}();
Муайян кунед, бидуни оғоз кардани рамз, чӣ ба консоль хориҷ карда мешавад:
function() {
console.log('!');
}();