ในโลกของการเขียนโปรแกรม การปรับใช้แนวคิดเชิงวัตถุ (Object-Oriented Programming หรือ OOP) ไม่ใช่เพียงแค่ประสบการณ์ทางเทคนิคที่สำคัญ แต่ยังเป็นกุญแจสำคัญในการสร้างโค้ดที่สามารถนำกลับมาใช้ใหม่และจัดการได้ง่ายขึ้น ในภาษาจาวาสคริปต์ แนวคิด OOP ถูกนำเสนอผ่าน keyword อย่าง `this` ที่หลากหลายและทรงพลัง ในบทความนี้ เราจะไปทำความเข้าใจเกี่ยวกับการใช้ `this` keyword ในภาษาจาวาสคริปต์เพื่อให้การเขียนโค้ดของคุณนั้นมีความยืดหยุ่นและมีประสิทธิภาพมากยิ่งขึ้น
`this` เป็น keyword ที่อ้างอิงถึง "วัตถุปัจจุบัน" หรือบริบทที่กำลังถูกใช้งาน เมื่อเราอยู่ในส่วนหนึ่งของโค้ด ที่สามารถเปลี่ยนแปลงไปตามที่ถูกเรียกใช้ มันมีความสำคัญเป็นอย่างมากในการพัฒนาโปรแกรมเชิงวัตถุ ในจาวาสคริปต์ เหมือนว่า `this` จะมีบทบาทแตกต่างกันเล็กน้อยขึ้นอยู่กับบริบทที่มันถูกใช้งาน มาดูกันว่าแต่ละบริบทมีวิธีการทำงานอย่างไร
เมื่อ `this` ถูกใช้งานใน Global Context หรือสภาพแวดล้อมทำการระดับท็อป มันจะอ้างอิงถึงวัตถุ `window` ในเบราว์เซอร์ หรือ global object ใน Node.js เช่น:
console.log(this); // ออก window (ในเบราว์เซอร์)
เมื่อใช้งานในบริบทของเมธอด `this` จะอ้างอิงถึงวัตถุที่มันอยู่ใน:
const car = {
brand: 'Toyota',
getBrand: function() {
return this.brand;
}
};
console.log(car.getBrand()); // ออก Toyota
ในตัวอย่างนี้ `this.brand` จะอ้างอิงไปยังคุณสมบัติของ `car` ที่ชื่อ `brand`
ในบริบทของ constructor function `this` จะอ้างอิงถึง instance ของ object ที่จะถูกสร้างขึ้นจาก constructor:
function Car(brand) {
this.brand = brand;
}
const myCar = new Car('Honda');
console.log(myCar.brand); // ออก Honda
นี่คือการใช้ `this` เพื่อกำหนดคุณสมบัติให้กับ instance ของ object ที่สร้างขึ้นใหม่
Arrow functions มีพฤติกรรมของ `this` ที่แตกต่างจากฟังก์ชันปกติ เนื่องจากมันรักษาบริบท `this` ของ scope ที่มันถูกประกาศ ถ้าคุณต้องการฟังค์ชันที่ไม่เปลี่ยนแปลง `this` เมื่อย้ายไปอยู่ในบริบทใหม่ สามารถใช้ arrow function ได้:
const person = {
age: 30,
growOlder: function() {
const arrowFunction = () => {
this.age++;
}
arrowFunction();
}
};
person.growOlder();
console.log(person.age); // ออก 31
ในอีเวนต์ handler, `this` จะอ้างอิงถึง element ที่เกิดอีเวนต์:
<button id="myButton">Click me</button>
<script>
document.getElementById('myButton').addEventListener('click', function() {
console.log(this.innerText); // ออก Click me
});
</script>
การทำความเข้าใจการใช้ `this` ให้ดีพอ มีความสำคัญมาก เนื่องจากมันอาจทำให้เกิดข้อผิดพลาดได้ง่าย ข้อผิดพลาดทั่วไปคือการอ้างอิง `this` ในบริบทที่ไม่ถูกต้อง โดยเฉพาะอย่างยิ่งเมื่อส่งฟังก์ชันเป็นพารามิเตอร์หรือเมื่อทำงานกับบริบทที่ซับซ้อนกว่า เช่น ภายใน callback functions
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับวิธีใช้ `this` และคำแนะนำเกี่ยวกับบริบทต่างๆ ของการเขียนโปรแกรม OOP ด้วยจาวาสคริปต์โดยเข้าร่วมหลักสูตรที่ EPT (Expert-Programming-Tutor) ซึ่งจะให้คำแนะนำและความรู้อย่างละเอียดเกี่ยวกับการเขียนโค้ดที่มีประสิทธิภาพและยืดหยุ่น สำหรับใครที่หลงใหลในการเรียนรู้และต้องการพัฒนาทักษะการเขียนโปรแกรมในเชิงลึก
สรุปแล้ว การเข้าใจวิธีการทำงานของ `this` ใน JavaScript จะช่วยให้คุณเขียนโค้ดเชิงวัตถุได้อย่างถูกต้องและมีประสิทธิภาพมากขึ้น นำเสนอทางเลือกที่ยอดเยี่ยมในการสร้างแอปพลิเคชันที่ยืดหยุ่นและมีการจัดการที่ดีขึ้น
ด้วยข้อมูลพื้นฐานและตัวอย่างที่เราได้ร่วมกันทบทวนในบทความนี้ หวังว่าคุณจะได้เห็นความสำคัญและการใช้งาน `this` ที่หลากหลายในการเขียนโค้ด JavaScript ของคุณมากยิ่งขึ้น!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM