វិធីក៏ជាក្បួន ដូចជាក្បួនដទៃទៀតនៅខាងក្រៅថ្នាក់ដែរ តែវិធីខុសពីក្បួនទាំងនោះនៅត្រង់ថា នៅពេលដែលវិធីត្រូវបានយកទៅប្រើតាមរយៈសិស្សណាមួយ សិស្សនោះនឹងត្រូវផ្តល់ជាដំណឹងឲ្យទៅវិធីនោះជាស្វ័យប្រវត្តិ។ ដូចនេះនៅក្នុងវិធី ក្រៅពីដំណឹងផ្សេងៗ ដែលយើងបានផ្តល់ឲ្យទៅវិធី នៅមានដំណឹងជាសិស្សមួយទៀត ដែលមានរួចជាស្រេចនៅក្នុងវិធី។ ដំណឹងដែលជាសិស្សនោះត្រូវបានភ្ជាប់ទៅនឹងដំណាងមើលមិនឃើញមួយ ដែលជាពាក្យពិសេសថា this ។ ដូចនេះបើយើងចង់យកដំណឹងដែលជាសិស្សនោះទៅប្រើការផ្សេងៗនៅក្នុងវិធី យើងចាំបាច់ត្រូវតែយកវាមកប្រើតាមរយៈឈ្មោះ this នេះ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
//ការបង្កើតក្បួនទទេមួយមានឈ្មោះថា Area
function Area(){};
//ការយកក្បួនឈ្មោះ Area មកប្រើជាថ្នាក់សំរាប់រក្សាទុកវត្ថុនិងឬអថេរផ្សេងៗ
Area.prototype.pi = 3.14;
Area.prototype.rectangle = function(width, height){
var surface = width * height;
console.log('ក្រឡាផ្ទៃចតុកោណកែងគឺ៖ '+surface);
//ការយកសិស្សមកប្រើ
console.log('this គឺជាឈ្មោះរបស់សិស្ស៖ '+this);
}
//ការបង្កើតសិស្សនៃថ្នាក់ Area
var instance = new Area();
//ការយកសម្បត្តិក្នុងថ្នាក់ Area មកប្រើ
console.log(instance.rectangle(25, 5));
នៅលើបន្ទាត់លេខ 11 ការសរសេរថា 'this គឺជាឈ្មោះរបស់សិស្ស៖ '+this គឺជាបញ្ជាដែលនៅក្នុងនោះមានការតម្រូវឲ្យយកសិស្សឈ្មោះ instance មកប្រើតាមរយៈឈ្មោះ this ដែលជាឈ្មោះមើលមិនឃើញមួយនៅក្នុងគ្រប់វិធីទាំងអស់។
យើងក៏ត្រូវធ្វើការកត់សម្គាល់ផងដែរថា ដំណឹងដែលជាសិស្សនឹងត្រូវផ្តល់ឲ្យទៅគ្រប់វិធីទាំងអស់ជាស្វ័យប្រវត្តិ នៅពេលដែលវិធីទាំងនោះត្រូវបានយកទៅប្រើតាមរយៈសិស្សនោះ។ ក៏ប៉ុន្តែការយកសិស្សនោះទៅប្រើការនៅក្នុងវិធីឬអត់ គឺគ្មានបញ្ហាអ្វីឡើយ។ គឺប្រៀបបានដូចជាវត្ថុមួយដែលគេប្រគល់ឲ្យយើង ហើយយើងយកវាទៅប្រើឬអត់ គឺគ្មានបញ្ហាអ្វីឡើយ។
មួយវិញទៀត យើងបានដឹងរួចមកហើយថា គ្រប់ការយកសម្បត្តិនៅក្នុងថ្នាក់ណាមួយទៅប្រើការនៅខាងក្រៅថ្នាក់ គឺត្រូវតែធ្វើឡើងតាមរយៈសិស្សនៃថ្នាក់នោះ។ ដូចគ្នាដែរ ការយកវិធីណាមួយទៅប្រើនៅក្នុងវិធីណាមួយផ្សេងទៀត ក៏ត្រូវធ្វើឡើងតាមរយៈសិស្សនៃថ្នាក់របស់វិធីទាំងនោះដែរ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
//ការបង្កើតក្បួនទទេមួយមានឈ្មោះថា Area
function Area(){};
//ការយកក្បួនឈ្មោះ Area មកប្រើជាថ្នាក់សំរាប់រក្សាទុកវត្ថុនិងឬអថេរផ្សេងៗ
Area.prototype.pi = 3.14;
Area.prototype.rectangle = function(width, height){
var surface = width * height;
return surface;
}
Area.prototype.display = function(){
//ការយកវិធីក្នុងថ្នាក់ Area មកប្រើតាមរយៈឈ្មោះ this
console.log('ក្រឡាផ្ទៃចតុកោណកែងគឺ៖ '+this.rectangle(25, 5));
}
var instance = new Area();
instance.display();
នៅលើបន្ទាត់លេខ 12 ការសរសេរថា this.rectangle(25, 5) គឺជាបញ្ជាតម្រូវឲ្យយកវិធីឈ្មោះ rectangle នៅក្នុងថ្នាក់ឈ្មោះ Area មកប្រើនៅក្នុងវិធីឈ្មោះ display នៅក្នុងថ្នាក់ដដែលនោះ។ វិធីឈ្មោះ rectangle ត្រូវបានយកមកប្រើតាមរយៈឈ្មោះ this ៕