⊗jsPmFNFRF 252 of 505 menu

ฟังก์ชันที่ส่งคืนฟังก์ชันใน JavaScript

สมมติว่าเรามีฟังก์ชันที่ส่งคืน สตริงแบบนี้:

function func() { return '!'; } let result = func(); console.log(result); // จะแสดง '!'

ทีนี้ลองแทนที่จะเป็นสตริง โดย analogy, ส่งคืนฟังก์ชันแบบไม่มีชื่อ (anonymous function):

function func() { return function() { return '!'; }; } let result = func(); // ในตัวแปร result จะเป็นฟังก์ชัน console.log(result); // จะแสดง 'function() {return '!';}'

อย่างที่คุณเห็น ตัวแปร result ตอนนี้ เป็นฟังก์ชัน ลองแสดงผลการทำงานของมัน ในคอนโซลดู โดยเขียนวงเล็บให้มัน:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // จะแสดง '!'

เนื่องจาก การเรียก func() ส่งคืนฟังก์ชัน, เราก็สามารถเรียกฟังก์ชันที่ถูกส่งคืนมานั้นได้ทันที แบบนี้: func()() - วงเล็บคู่แรก ได้รับผลลัพธ์จากฟังก์ชัน func (ซึ่งตัวมันเองเป็นฟังก์ชัน) และวงเล็บคู่ที่สองถูกนำไปใช้กับผลลัพธ์ของ func

มาลองดู:

function func() { return function() { return '!'; }; } console.log( func()() ); // จะแสดง '!'

สร้างฟังก์ชัน func1 ซึ่งเมื่อ ถูกเรียกแบบนี้: func1()(), จะส่งคืน ตัวเลข 1 สร้างฟังก์ชันที่คล้ายกัน func2 ซึ่งส่งคืนตัวเลข 2 หาผลรวมของผลลัพธ์จากฟังก์ชันเหล่านี้

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ