function sayHello(){ console.log(«Hello») } sayHello() // Hello Ushbu barchamiz bilgan funksiya.
Endi , mavzuga qaytamiz,
JavaScriptda funksiyalar faqatgina ushbu ko’rinishdagina ishlatilmaydi, balki biz funksiyalarni boshqa bir funksiyaga argument sifatida berishimiz, yoki qaysidir o’zgaruvchiga qiymat sifatida berishimiz va xatto qandaydir blok ichidan funksiyani return qilishimiz ham mumkin.
Mana shu kabi funksiyalarga «First class functions» deyiladi.
Endi misollar orqali tushuntiraman.
function sayHello(){ return «Hello «; } function greet(helloFunc, name){ alert(helloFunc() + name); } greet(sayHello, «Josh»); Ushbu kodimizga e’tibor beramiz, sayHello funksiyasi «Hello» degan so’zni return qilib beryapti, greet funksiyasi esa 2 ta argument qabul qilyapti, biri funksiya qabul qiladi, biri esa name va kod ichida argumentlarni birinchisini funksiya sifatida chaqiryapti, birisini esa string ko’rinishida.
Oxirida esa greet funksiyasining birinchi argumentiga boshqa bir funksiyani berib yuboryapmiz. Aynan shu yerda «first class function» tushunchasi ishlaydi.
P.S: Funksiyalarni chaqirish uchun ishlatiladigan () ushbu ikki qavslarni to’g’ri ishlatish talab etiladi, chunki bu ikkisi orqali biz funksiyani ishlatib yuboramiz, garchi buni xoxlamasak ham. Misol uchun quyidagi qatorda yozgan kodimiz xatolik beradi va xato ishlaydi:
greet(sayHello(), «Josh»); Shuningdek funksiyalarni qandaydir o’zgaruvchilarga ham berib yuborishimiz mumkin. Bunday:
const fn = sayHello; fn(); // «Hello» qaytaradi va yana funksiyalarni boshqa bir funksiya ichidan «return» qilishimiz ham mumkin.
Misol uchun:
function sayHello() { return function() {