ระดับการซ้อนใดๆ ใน JavaScript
อาจมีการเรียกใช้ฟังก์ชันเช่น: func()()()
และ func()()()() - และต่อๆ ไปจนถึงอนันต์
สำหรับสิ่งนี้ จำเป็นที่ฟังก์ชันภายใน ต้องคืนค่าฟังก์ชันด้วย, และฟังก์ชันนั้นคืนค่าอีกฟังก์ชันหนึ่ง และต่อๆ ไป ตัวอย่างเช่น:
function func() {
return function() {
return function() {
return '!';
};
};
}
console.log( func()()() ); // แสดงผล '!'
สร้างฟังก์ชัน func ซึ่งเมื่อถูกเรียก
แบบนี้: func()()()()(), จะคืนค่า
'!'