Ozmi ko’pmi hamma funksiya nimaligi haqida biladi va funksiya
orqali juda ko’p ish qilish mumkin!.
Oddiy funksiya:
function sayHello(){ console.log("Hello") } sayHello() // Hello
Xo’sh
First class function
uzi nima?Qisqacha qilib aytganda funksiyani biror o’zgaruvchiga qiymat sifatida berishimiz, funksiyani boshqa funksiyaga argument qilishimiz, yoki ixtiyoriy block ichidan return qilib qo’yishimiz aynan
First class function
ga misol boladi.Misollar orqali yaxshilab tushinib olamiz!.
- O'zgaruvchiga saqlash: Funksiyalarni o'zgaruvchiga saqlab qo'yish mumkin.
let funk = function() { return "Salom!"; };
- Natija sifatida qaytarish: Funksiyalarni boshqa funksiyalardan natija sifatida qaytarish mumkin.
function qaytaruvchiFunk() { return function() { return "Qaytgan funksiya!"; }; } let yangiFunk = qaytaruvchiFunk(); console.log(yangiFunk());
Kodmizda
qaytaruvchiFunk
ichida yana bir funksiyani return qilinayapdi va yangiFunk
nomili o’zgaruvchiga qaytaruvchiFunk()
bilan chaqirdik. E’tibor beramiz ()
funksiyani chaqirish uchun ishlatiladi, so’ngi qator console.log da argument sifatida return bo’lib qaytgan funksiyani yangiFunk()
nomli o’zgaruchi bilan qayta chaqirib qo’ydik.Ushbu kodda ikkinchi bor qayta chaqirishni o’zgaruchiga bermasdan shunchaki
qaytaruvchiFunk()()
double qavslar bilan ham amalga oshirsak bo’ladi.- Argument sifatida uzatish: Funksiyalarni boshqa funksiyalarga argument sifatida uzatish mumkin.
function sayHello() { return "Hello "; } function greet(hiFunc, name){ console.log(hiFunc() + name); } greet(sayHello, "Ali");
Kodaga e’tibor beradigan bo’lsak dastlab
sayHello()
funksiyasi Hello so’zini return qilayapdi.greet()
funksiyasi esa birnchi argument uchun hiFunc
nomli funsiya va ikkinchi argument uchun name
nomli stiring qabul qilayapdi.Diqqat qilamiz!. So’ngi qatorda
greet()
funksiyani birnchi argumentiga sayHello() funksiyasini argument sifatida berdik aynan shu holatga First class function
hodisasi yuz berdi, ikkinchi argumentga string berildi.Ushbu
()
qavslar bilan ishlashda e’tiborli bo’lamiz. greet(sayHello(), "Ali");
qavslar bilan funksiyani chaqirib qo’ysak return bo’lib qaytgan ichki funksiya chaqirilmay xatolik yuz beradi!.First class function
nima ekanligini ham bilib oldik. 😎Maqola foydali bo’ldi degan umiddaman!. E’tiboringiz uchun raxmat.