យើង​ដឹង​រួច​មក​ហើយ​ថា ក្បួន​មួយ​អាច​ត្រូវ​យក​ទៅ​ប្រើ​ជា​បញ្ជា​នៅ​ក្នុង​ក្បួន​មួយ​ទៀត​បាន​។ ក៏ប៉ុន្តែ លើស​ពី​នេះ​ទៀត ក្បួន​មួយ​ក៏​អាច​យក​ក្បួន​ខ្លួន​ឯង​មក​ប្រើ​ប្រាស់​ជា​បញ្ជា​នៅ​ក្នុង​ក្បួន​ខ្លួន​ឯង​បាន​ទៀត​ផង​។ ការធ្វើ​របៀប​នេះ ជា​ភាសា​អង់គ្លេស​ត្រូវ​គេ​ហៅ​ថា recursion ដែលមាន​លក្ខណៈ​ស្រដៀង​នឹង​បញ្ជា while ឬ​បញ្ជា do/while ដែរ​។ ពោល​គឺ​កម្មវិធី​ដំណើរការ​ទៅ​រហូត​ដល់​មាន​លក្ខខ័ណ្ឌ​មួយ​ត្រូវ​បំពេញ​ទើប​ឈប់​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

 

let x = 10
 
function myfunction(){
  console.log(`The value of x is: ${x}`)
   
  x -= 1
  if(x == 0)
    return
   
  myfunction()
}
   
myfunction()

 

ដូចនេះ នៅ​ពេល​ដែល​ក្បួន myfunction ត្រូវ​យក​ទៅ​ប្រើ​ចំនួន ១០ ដង តំលៃ​លេខ​របស់ x នឹង​ថយ​ចុះ​រហូត​ដល់ ០ ដែល​ជា​កត្តា​ធ្វើ​អោយ​លក្ខខ័ណ្ឌ​នៅ​ជាប់​នឹង​បញ្ជា if ត្រូវ​បំពេញ ដែល​ធ្វើ​អោយ​ការយក​ក្បួន myfunction មក​ប្រើ​ត្រូវ​បញ្ឈប់​។

 

ក៏​ប៉ុន្តែ យើង​ត្រូវ​ប្រយ័ត្នប្រយែង​ក្នុង​ការសរសេរ​កូដ​បង្កើត​យន្តការ recursion ពីព្រោះ​យន្តការ​នេះ​តែងតែ​បង្ករ​អោយ​មាន​បញ្ហា infinite loop ដែល​ធ្វើ​អោយ​កម្មវិធី​របស់​យើង​ដំណើរការ​ទៅ​ជាប់​រហូត​គ្មាន​ឈប់​៕