នៅ​ក្នុង​ភាសា JavaScript នៅ​ពេល​ដែល​យើង​យក​វត្ថុ​ណា​មួយ​មក​ប្រើ ការស្វែង​រក​វត្ថុ​នោះ ត្រូវ​ធ្វើ​ឡើង​តាម​គំនូស​បំព្រួញ​ដូច​ខាង​ក្រោម​នេះ​៖

 

 

 

គឺ​ថា​ការស្វែង​រក​វត្ថុ​ត្រូវ​ធ្វើ​ឡើង​ ដោយ​ចាប់​ផ្តើម​នៅ​ក្នុង​ដែនកំណត់​ ដែលវត្ថុ​ត្រូវ​បាន​យក​ទៅ​ប្រើ រួច​បាន​បន្ត​ទៅ​ដែនកំណត់​ផ្សេង​ៗ​ទៀត តាម​សញ្ញា​ព្រួញ​​ដូច​មាន​នៅ​ក្នុង​​រូប​ខាង​លើ​នេះ រហូត​ដល់​អស់​ដែនកំណត់​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ​៖

 

//ការបង្កើត​ឃ្លា​មួយ​នៅ​ក្នុង​ដែន​កំណត់​ក្រៅ
var outerSentence = 'ដែនកំណត់​ក្រៅ';
 
function outerFunction(){
  //ការបង្កើត​ឃ្លា​មួយ​ទៀត​នៅក្នុង​ដែល​កំណត់​ក្នុងនិង​ឬ​ចារឹក​ក្នុង
  var outerFunctionSentence = 'ដែនកំណត់​ចារឹក​ក្រៅ';
 
  function innerFunction(){
    //ការបង្កើតឃ្លា​មួយ​ទៀត​ក្នុង​ដែន​កំណត់​ចារឹកក្នុង
    var innerFunctionSentence = 'ដែនកំណត់​ចារឹកក្នុង';
 
    console.log('ឃ្លា​ក្រៅ​ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង៖ '+outerSentence);
    console.log('ឃ្លាចារឹក​ក្រៅ​ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង៖ '+outerFunctionSentence);
    console.log('ឃ្លា​ចារឹក​ក្នុង​ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង៖ '+innerFunctionSentence);
  }
 
  innerFunction();
}
 
outerFunction();

 

នៅលើ​បន្ទាត់​លេខ 12 ការសរសរ​ថា 'ឃ្លា​ក្រៅ​ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង៖ '+outerSentence គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុង​នោះ​ មានការតម្រូវ​ឲ្យ​យក​វត្ថុ​ឈ្មោះ outerSentence មក​ប្រើ​​​​នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​។ យោង​ទៅ​តាម​ក្បួនច្បាប់​នៅ​ក្នុង​ភាសា JavaScript ការស្វែងរក​វត្ថុ​នោះ ត្រូវ​ធ្វើ​ឡើង​ជា​ដំបូង នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​នោះ​មុន​គេ​ រួច​បាន​ឡើង​ទៅ​ដែនកំណត់​ចារឹក​ក្រៅ រួច​បាន​ឡើង​ទៅ​ដែនកំណត់​ក្រៅ និង​ចុង​ក្រោយ​បង្អស់​ឡើង​ទៅ​ដែនកំណត់​មាន​ស្រាប់​។ វត្ថុ​ឈ្មោះ outerSentence ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង​ដែនកំណត់​ក្រៅ ព្រោះ​វា​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ទី​នោះ​។

 

នៅលើ​បន្ទាត់​លេខ 13 ការសរសរ​ថា 'ឃ្លាចារឹក​ក្រៅ​ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង៖ '+outerFunctionSentence គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុង​នោះ​ មានការតម្រូវ​ឲ្យ​យក​វត្ថុ​ឈ្មោះ outerFunctionSentence មក​ប្រើ​​​​នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​។ យោង​ទៅ​តាម​ក្បួនច្បាប់​នៅ​ក្នុង​ភាសា JavaScript ការស្វែងរក​វត្ថុ​នោះ ត្រូវ​ធ្វើ​ឡើង​ជា​ដំបូង នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​នោះ​មុន​គេ​ រួច​បាន​ឡើង​ទៅ​ដែនកំណត់​ចារឹក​ក្រៅ រួច​បាន​ឡើង​ទៅ​ដែនកំណត់​ក្រៅ និង​ចុង​ក្រោយ​បង្អស់​ឡើង​ទៅ​ដែនកំណត់​មាន​ស្រាប់​។ វត្ថុ​ឈ្មោះ outerFunctionSentence ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង​ដែនកំណត់​ចារឹកក្រៅ ព្រោះ​វា​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ទី​នោះ​។

 

នៅលើ​បន្ទាត់​លេខ 14 ការសរសរ​ថា 'ឃ្លា​ចារឹក​ក្នុង​ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង៖ '+innerFunctionSentence គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុង​នោះ​ មានការតម្រូវ​ឲ្យ​យក​វត្ថុ​ឈ្មោះ innerFunctionSentence មក​ប្រើ​​​​នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​។ យោង​ទៅ​តាម​ក្បួនច្បាប់​នៅ​ក្នុង​ភាសា JavaScript ការស្វែងរក​វត្ថុ​នោះ ត្រូវ​ធ្វើ​ឡើង​ជា​ដំបូង នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង​នោះ​មុន​គេ​ រួច​បាន​ឡើង​ទៅ​ដែនកំណត់​ចារឹក​ក្រៅ រួច​បាន​ឡើង​ទៅ​ដែនកំណត់​ក្រៅ និង​ចុង​ក្រោយ​បង្អស់​ឡើង​ទៅ​ដែនកំណត់​មាន​ស្រាប់​។ វត្ថុ​ឈ្មោះ innerFunctionSentence ត្រូវ​បាន​រកឃើញ​នៅ​ក្នុង​ដែនកំណត់​ចារឹកក្នុង ព្រោះ​វា​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ទី​នោះ​។

 

ដោយការស្វែង​រក​វត្ថុ​ផ្សេង​ៗ ត្រូវ​ប្រព្រឹត្តទៅ​ដូច​នៅ​ក្នុង​គំនូសបំព្រួញ​ខាង​លើ ដូចនេះ​យើង​មិន​អាចយក​​វត្ថុ​នៅ​ក្នុង​ដែនកំណត់​នៅ​ខាង​ក្រោម​ មក​ប្រើ​នៅ​ក្នុង​ដែនកំណត់​នៅ​ខាង​លើ​បាន​ឡើយ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ​៖

 

function outerFunction(){
  var outerSentence = 'ដែនកំណត់​ចារឹក​ក្រៅ';
  //ការសាកល្បងយក​វត្ថុ​នៅ​ក្នុង​ដែន​កំណត់ចារឹក​ក្នុង​មក​ប្រើ
  console.log(innerSentence);
 
  function innerFunction(){
    var innerSentence = 'ដែនកំណត់​ចារឹកក្នុង';
  }
 
  innerFunction();
}
 
outerFunction();

 

នៅ​លើ​បន្ទាត់​លេខ 4 ការសរសេរ​ថា console.log(innerSentence) គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុង​នោះ​ មាន​ការតម្រូវឲ្យ​យក​វត្ថុ​ឈ្មោះ innerSentence ដែល​ជា​វត្ថុ​នៅ​ក្នុង​ដែនកំណត់​ចារឹក​ក្នុង មក​ប្រើ​នៅ​ក្នុង​ដែនកំណត់ចារឹក​ក្រៅ​។ ប្រការ​នេះ​មិន​អាច​ធ្វើ​ទៅ​បាន​ឡើយ កំហុស​​ស្តី​ពីការ​រក​វត្ថុ​មិន​ឃើញ បាន​កើត​មាន​ឡើង​ ព្រោះ​ការស្វែង​រក​វត្ថុ​នោះ ត្រូវ​​ធ្វើ​ឡើង​ចាប់​ពី​ដែនកំណត់​ចារឹកក្រៅ​ឡើង​ទៅ​លើ​។

 

ម៉្យាងទៀត វត្ថុ​នៅ​ក្នុង​ដែនកំណត់ផ្សេង​ៗ​គ្នា​ គឺ​ជា​វត្ថុ​ខុស​ៗ​​គ្នា ទោះបី​ជា​វត្ថុ​ទាំងនោះ​មាន​ឈ្មោះ​ដូច​គ្នា​ក៏​ដោយ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ​៖

 

//ការបង្កើត​វត្ថុ​មានឈ្មោះ info មួយនៅ​ក្នុង​ដែល​កំណត់​ក្រៅ
var info = 1000;
 
console.log('នៅ​ក្នុង​ដែនកំណត់​ក្រៅ វត្ថុ​ឈ្មោះ info គឺ​ជា​៖ ' + info);
 
function outerFunction(){
  //ការបង្កើតវត្ថុ​ឈ្មោះ info មួយ​ទៀត​នៅ​ក្នុង​ដែនកំណត់ក្នុង
  var info = true;
 
  console.log('នៅ​ក្នុង​ដែន​កំណត់​ចារឹកក្រៅ វត្ថុ​ឈ្មោះ info​​ គឺ​ជា​៖ '+info);
 
  function innerFunction(){
    //ការបង្កើត​វត្ថុ​ឈ្មោះ info មួយ​ទៀត​នៅ​ក្នុង​ដែន​កំណត់​ចារឹក​ក្នុង
    var info = 'ប្រយោគ';
 
    console.log('នៅ​ក្នុង​ដែន​កំណត់​ចារឹកក្នុង វត្ថុ​ឈ្មោះ info​​ គឺ​ជា​៖ '+info);
  }
 
  innerFunction();
}
 
outerFunction();

 

នៅ​ក្នុង​កម្មវិធី​ខាង​លើ យើង​សង្កេត​ឃើញ​ថា មាន​វត្ថុ​មាន​ឈ្មោះ​​ថា info ដូច​គ្នា​ចំនួន​ 3 ត្រូវ​​បាន​បង្កើត​ឡើង​នៅ​ក្នុង​ដែនកំណត់​ 3 ខុស​ៗ​គ្នា​។ ជាលទ្ធផល ​វត្ថុ​ទាំងនោះ​គឺ​ជា​វត្ថុ​ 3 ខុស​ៗ​គ្នា​ ទោះ​ជា​វា​មាន​ឈ្មោះ​ដូច​គ្នា​យ៉ាង​ណា​ក៏​ដោយ​ ព្រោះ​វា​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ក្នុង​ដែនកំណត់​បី​ ខុស​ៗ​គ្នា​។

 

នៅ​លើ​បន្ទាត់​លេខ 4 ការសរសេរ​ថា 'នៅ​ក្នុង​ដែនកំណត់​ក្រៅ វត្ថុ​ឈ្មោះ info គឺ​ជា​៖ '+info គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុងនោះ មាន​ការតម្រូវ​ឲ្យ​យក​វត្ថុ​ឈ្មោះ info មក​ប្រើ​នៅ​ក្នុង​ដែនកំណត់ក្រៅ​។ អាស្រ័យ​ទៅ​តាម​ក្បួនច្បាប់​នៃ​ការស្វែងរក​វត្ថុ​​នៅ​ក្នុង​ភាសា JavaScript វត្ថុ​ឈ្មោះ info នៅ​ក្នុង​ដែនកំណត់ក្រៅ ត្រូវ​បាន​យក​មក​ប្រើ​។

 

នៅ​លើ​បន្ទាត់​លេខ 10 ការសរសេរ​ថា 'នៅ​ក្នុង​ដែន​កំណត់​ចារឹកក្រៅ វត្ថុ​ឈ្មោះ ព័ត៌មាន​​ គឺ​ជា​៖ '+info គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុងនោះ មាន​ការតម្រូវ​ឲ្យ​យក​វត្ថុ​ឈ្មោះ info មក​ប្រើ​នៅ​ក្នុង​ដែនកំណត់ចារឹក​ក្រៅ​។ អាស្រ័យ​ទៅ​តាម​ក្បួនច្បាប់​នៃ​ការស្វែងរក​វត្ថុ​​នៅ​ក្នុង​ភាសា JavaScript វត្ថុ​ឈ្មោះ info នៅ​ក្នុង​ដែនកំណត់ចារឹកក្រៅ ត្រូវ​បាន​យក​មក​ប្រើ​។

 

នៅ​លើ​បន្ទាត់​លេខ 16 ការសរសេរ​ថា 'នៅ​ក្នុង​ដែន​កំណត់​ចារឹកក្នុង វត្ថុ​ឈ្មោះ ព័ត៌មាន​​ គឺ​ជា​៖ '+info គឺ​ជា​បញ្ជា​ដែល​នៅ​ក្នុងនោះ មាន​ការតម្រូវ​ឲ្យ​យក​វត្ថុ​ឈ្មោះ info​ មក​ប្រើ​នៅ​ក្នុង​ដែនកំណត់ចារឹក​ក្នុង​។ អាស្រ័យ​ទៅ​តាម​ក្បួនច្បាប់​នៃ​ការស្វែងរក​វត្ថុ​​នៅ​ក្នុង​ភាសា JavaScript វត្ថុ​ឈ្មោះ info នៅ​ក្នុង​ដែនកំណត់ចារឹកក្នុង ត្រូវ​បាន​យក​មក​ប្រើ​។

 

ចំពោះ​វត្ថុ​ដែល​ស្ថិត​នៅ​ក្នុង​ក្បួន​ខុសៗ​គ្នា គឺ​ជា​វត្ថុ​ខុស​ៗ​គ្នា​ ទោះបី​ជា​វត្ថុ​ទាំងនោះ​មាន​ឈ្មោះ​ដូច​គ្នា​ក៏​ដោយ​ ពីព្រោះនៅ​ក្នុង​​ក្បួន​និមួយ​​ៗ គឺ​​ជា​ដែនកំណត់​ក្នុង​ខុស​ៗ​គ្នា​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ​៖

 

function getProfit(sale, purchase){
  var profit = sale - purchase;
  return profit;
}
 
function totalMoney(sale, purchase){
  //ការយក​ក្បួន​ដែល​មាន​ដំណាង​ sale និង purchase ដូច​គ្នា​មក​ប្រើ
  var cash = sale + purchase + getProfit(sale, purchase);
  console.log('ទឹកប្រាក់​សរុប​គឺ​៖ '+cash);
}
 
totalMoney(1000, 900);

 

នៅ​លើ​បន្ទាត់​លេខ 8 ការសរសេរ​ថា var cash = sale + purchase + getProfit(sale, purchase) គឺ​ជា​បញ្ជា​ ដែល​នៅ​ក្នុង​នោះ មាន​ការតម្រូវ​ឲ្យ​យក​ក្បួនឈ្មោះ getProfit មក​ប្រើ​ជា​បញ្ជា​នៅ​ក្នុង​ក្បួន​ឈ្មោះ totalMoney ។ ក្នុងករណី​នេះ ដំណាង sale និង purchase របស់​ក្បួន​ឈ្មោះ​ totalMoney ត្រូវ​បាន​ផ្តល់​ជា​ដំណឹង​រៀង​គ្នា​ ឲ្យ​ទៅ​ដំណាង sale និង​ purchase នៅ​ក្នុង​ក្បួន​ឈ្មោះ getProfit​ នោះ​។

 

ដូចនេះ​យើង​ឃើញ​ថា ក្បួន​ឈ្មោះ getProfit និង​ក្បួន​ឈ្មោះ totalMoney សុទ្ធ​តែ​មាន​ដំណាង​ដែល​ជា​ឈ្មោះ sale និង purchase ដូច​គ្នា​ តែ​ឈ្មោះ​ទាំងនោះ​ ជា​ឈ្មោះ​ខុស​ៗ​គ្នា​ ព្រោះ​វា​ស្ថិត​នៅ​ក្នុង​ដែនកំណត់​ក្នុង ដែល​ជា​ក្បួន​ពីរ​ផ្សេង​គ្នា​។

 

សរុបមក​ ឈ្មោះ​របស់​វត្ថុ​នៅ​ក្នុង​ភាសា JavaScript ក៏​ដូច​ជា​ឈ្មោះ​របស់​មនុស្ស​យើង​ដែរ​​។ ពោល​គឺ​មនុស្ស​ឈ្មោះ វុទ្ធី នៅ​ក្នុង​គ្រួសារ ក ខុស​ពី​មនុស្ស​ឈ្មោះ វទ្ធី នៅ​ក្នុង​គ្រួសារ ខ ទោះបី​ជា​មនុស្ស​ទាំងពីរ​នាក់​នោះ​​មាន​ឈ្មោះ​ដូច​គ្នា​យ៉ាង​ណា​ក៏​ដោយ​៕