យើងដឹងរួចមកហើយថា ក្បួនមួយអាចត្រូវយកទៅប្រើជាបញ្ជានៅក្នុងក្បួនមួយទៀតបាន។ ក៏ប៉ុន្តែ លើសពីនេះទៀត ក្បួនមួយក៏អាចយកក្បួនខ្លួនឯងមកប្រើប្រាស់ជាបញ្ជានៅក្នុងក្បួនខ្លួនឯងបានទៀតផង។ ការធ្វើរបៀបនេះ ជាភាសាអង់គ្លេសត្រូវគេហៅថា recursion ដែលមានលក្ខណៈស្រដៀងនឹងបញ្ជា while ឬបញ្ជា do/while ដែរ។ ពោលគឺកម្មវិធីដំណើរការទៅរហូតដល់មានលក្ខខ័ណ្ឌមួយត្រូវបំពេញទើបឈប់។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var x = 10;
function myfunction(){
console.log("តំលៃរបស់ x គឺ៖ "+x);
x = x - 1;
if(x == 0)
return;
myfunction();
}
myfunction();
នៅលើបន្ទាត់លេខ 10 គឺជាការយកក្បួន myfunction មកប្រើនៅក្នុងក្បួន myfunction ខ្លួនឯង ដែលជាប្រការនឹងធ្វើអោយក្បួននេះ ត្រូវយកទៅប្រើជាដដែលៗរហូតដល់តំលៃលេខរបស់ x ស្មើនឹងសូន្យទើបឈប់។ ហើយនៅពេលដែលក្បួន myfunction ត្រូវយកទៅអនុវត្តម្តង តំលៃលេខរបស់ x ត្រូវថយចុះ 1 ។
ដូចនេះ នៅពេលដែលក្បួន myfunction ត្រូវយកទៅប្រើចំនួន ១០ ដង តំលៃលេខរបស់ x នឹងថយចុះរហូតដល់ ០ ដែលជាកត្តាធ្វើអោយលក្ខខ័ណ្ឌនៅជាប់នឹងបញ្ជា if ត្រូវបំពេញ ដែលធ្វើអោយការយកក្បួន myfunction មកប្រើត្រូវបញ្ឈប់។
ក៏ប៉ុន្តែ យើងត្រូវប្រយ័ត្នប្រយែងក្នុងការសរសេរកូដបង្កើតយន្តការ recursion ពីព្រោះយន្តការនេះតែងតែបង្ករអោយមានបញ្ហា infinite loop ដែលធ្វើអោយកម្មវិធីរបស់យើងដំណើរការទៅជាប់រហូតគ្មានឈប់៕