នៅ​ក្នុង​ភាសា ES6 យើង​អាច​បង្កើត​ក្បួន​មួយ​នៅ​ក្នុង​ក្បួន​មួយ​ទៀត​បាន​។ ក្នុងករណី​នេះ ទីកន្លែង​របស់​ក្បួន​នៅ​ខាង​ក្នុង​ត្រូវ​ហៅ​ថា​ ដែនកំណត់ចារឹកក្នុង (nested scope) ឯ​ចំណែក​ទី​កន្លែង​របស់​ក្បួន​នៅ​ខាង​ក្រៅ​ត្រូវ​ហៅ​ថា ដែនកំណត់ចារឹក្រៅ (enclosing scope) ។ ហើយ​ដើម្បី​បង្កើត​អថេរ​​ផ្សេង​ៗ​នៅ​ក្នុង​ដែនកំណត់ចារឹក​ក្នុង និងដែន​កំណត់​ចារឹក​ក្រៅ យើង​ត្រូវ​ធ្វើ​ដូច​ខាងក្រោមនេះ​៖

 

//ការបង្កើត​ក្បួន​ចារឹក​ក្រៅ
function outerFunction(){
  let listOfMoney = [2000, 1500]
  console.log(`Data in enclosing scope is ${listOfMoney}`)
 
  //ការបង្កើតក្បួន​ចារឹក​ក្នុង
  function innerFunction(){
    let setOfMoney = {'sale':1000, 'purchase':900}
    console.log(`Data in nested scope is ${setOfMoney}`)
  }
   
  innerFunction()
}
 
outerFunction()

 

អថេរ​នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​ និង​អថេរ​នៅ​ក្នុង​ដែនកំណត់​ចារឹកក្រៅ ក៏​ដូច​ជា​អថេរ​នៅ​ក្នុង​ដែនកំណត់​ក្នុង​ជា​ទូទៅ​​ដែរ គឺ​វា​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ពេល​ដែល​ក្បួន​ត្រូវ​បាន​យក​ទៅ​ប្រើ​ និង​ត្រូវ​លុប​ចោល​ទៅវិញ នៅ​ពេល​ដែល​ក្បួន​ត្រូវ​បាន​ប្រើ​រួច​ហើយ​។

 

ចំណែក​ឯ​ ដែនកំណត់​មានស្រាប់ (built-in scope) គឺ​ជា​ទីកន្លែង​មាន​ស្រាប់​មួយ​កន្លែង​ ​នៅ​ក្នុង​សតិ​របស់​កំព្យូទ័រ​​ ដែល​នៅ​ក្នុង​នោះ អថេរ​មួយ​ចំនួន​ត្រូវ​បាន​បង្កើត​ឡើង​រួច​ជា​ស្រច ទុក​សម្រាប់​យក​ទៅ​ប្រើការ​នៅ​កន្លែង​ផ្សេង​ៗ​ទៀត​។ វត្ថុ​ទាំងនោះ​ ត្រូវ​គេ​ឲ្យ​ឈ្មោះ​ថា​ជា​ អថេរ​មាន​ស្រាប់ (built-in object) ដែល​អាច​​​​ត្រូវ​យក​ទៅ​ប្រើ​នៅ​កន្លែង​ណា​​ក៏​បាន​ដែរ​។ យើង​នឹង​បាន​ស្គាល់​​អថេរ​ទាំងនោះ​ នៅ​ពេល​បន្តិច​ទៀត​នេះ៕