វិធី​ក៏​ជា​ក្បួន​ ដូច​ជា​ក្បួន​ដទៃ​ទៀត​នៅ​ខាងក្រៅ​ថ្នាក់​ដែរ តែ​វិធី​ខុស​ពី​ក្បួន​ទាំងនោះ​នៅ​ត្រង់​ថា នៅ​ពេល​ដែល​វិធី​ត្រូវ​បាន​យក​ទៅ​ប្រើ​តាមរយៈ​សិស្ស​ណា​មួយ សិស្ស​នោះ​នឹង​ត្រូវ​ផ្តល់​ជា​ដំណឹង​​ឲ្យ​ទៅ​​វិធី​នោះ​ជា​ស្វ័យ​ប្រវត្តិ​។ ដូចនេះ​នៅក្នុង​វិធី ក្រៅ​ពី​ដំណឹង​ផ្សេង​ៗ ដែល​យើង​បាន​ផ្តល់​ឲ្យ​ទៅ​វិធី នៅ​មាន​ដំណឹង​​​ជា​សិស្ស​មួយ​ទៀត ដែល​មាន​រួច​ជាស្រេច​នៅ​ក្នុង​វិធី​។ ដំណឹ​ងដែល​ជា​សិស្ស​​នោះ​ត្រូវ​បាន​ភ្ជាប់​ទៅ​នឹង​ដំណាង​មើល​មិន​ឃើញ​មួយ ដែល​ជា​ពាក្យ​ពិសេស​ថា this ។ ដូចនេះ​​បើ​យើង​ចង់​យក​ដំណឹង​ដែល​ជា​សិស្ស​នោះ​ទៅ​ប្រើ​ការ​ផ្សេង​ៗ​នៅ​ក្នុង​វិធី យើង​ចាំបាច់​ត្រូវ​​តែ​យក​វា​មក​ប្រើ​តាមរយៈ​ឈ្មោះ this នេះ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ​៖

 

class Area{
  constructor(){
    this.pi = 3.14
  }

  rectangle(width,height){
    let surface = width * height
    console.log(`The area of the rectangle is: ${surface}`)

    //ការយក​សិស្ស​មក​ប្រើ
    console.log(`"this" is the instance ${this}`)
  }
}

//ការបង្កើត​សិស្ស​នៃ​ថ្នាក់ Area
let instance = new Area()
 
//ការយក​សម្បត្តិ​​ក្នុង​ថ្នាក់ Area មក​ប្រើ
console.log(instance.rectangle(25, 5))

 

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

 

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

 

class Area{
  constructor(){
    this.pi = 3.14
  }

  rectangle(width,height){
    let surface = width * height
    console.log(`The area of the rectangle is: ${surface}`)
  }

  display(width,height){
    //ការយក​វិធី​ក្នុង​ថ្នាក់ Area មក​ប្រើ​តាម​រយៈ​ឈ្មោះ this
    this.rectangle(width,height)
  }
}

//ការបង្កើត​សិស្ស​នៃ​ថ្នាក់ Area
let instance = new Area()
 
//ការយក​សម្បត្តិ​​ក្នុង​ថ្នាក់ Area មក​ប្រើ
console.log(instance.display(25, 5))