⊗jsPmFNFRF 252 of 505 menu

JavaScriptda Funktsiya Qaytaruvchi Funktsiya

Faraz qilaylik, bizda matn qaytaruvchi quyidagi funktsiya mavjud:

function func() { return '!'; } let result = func(); console.log(result); // '!' ni chiqaradi

Keling, endi matn o'rniga, o'xshash tarzda, anonim funktsiyani qaytaraylik:

function func() { return function() { return '!'; }; } let result = func(); // result o'zgaruvchisida funktsiya bo'ladi console.log(result); // 'function() {return '!';}' ni chiqaradi

Ko'rib turganingizdek, result o'zgaruvchisi endi funktsiyani ifodalaydi. Keling, uning ishlash natijasini konsolga chiqaraylik. Buning uchun unga qavslar qo'yamiz:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // '!' ni chiqaradi

func() chaqiruvi funktsiyani qaytargani sababli, biz qaytarilgan funktsiyani darhol chaqirishimiz mumkin, mana bu tarzda: func()() - birinchi qavslar func funktsiyasining natijasini oladi (o'zi funktsiya bo'lgan), ikkinchi qavslar esa func natijasiga qo'llaniladi.

Keling, sinab ko'raylik:

function func() { return function() { return '!'; }; } console.log( func()() ); // '!' ni chiqaradi

func1 funktsiyasini yarating, u shunday chaqirilganda: func1()(), 1 sonini qaytarsin. 2 sonini qaytaruvchi o'xshash func2 funktsiyasini yarating. Ushbu funktsiyalar natijalari yig'indisini toping.

swmsdabyit