Context และ Scope ไม่ใช่สิ่งเดียวกันใน JavaScript การเรียกใช้ฟังก์ชันมีทั้ง Scope และ Context
Scope (ขอบเขต)
Scope ของตัวแปรคือบริเวณในโปรแกรมที่ตัวแปรนั้นถูกกำหนด JavaScript มี 2 Scope: Global Variable มี Global Scope เข้าถึงได้ทุกที่ Local Variable เห็นได้เฉพาะในฟังก์ชันที่ประกาศ Parameter ของฟังก์ชันเป็น Local เสมอ
Context (บริบท)
Context แสดงว่าฟังก์ชันถูกเรียกอย่างไร ตัวอย่าง:
var ob1 = {
display: function() {
return this;
}
};
ob1.display() === ob1;
คืนค่า true เมื่อเรียกฟังก์ชันเป็น Method ของ Object เราเห็น Context this ถูกตั้งค่าเป็น Object ที่เรียก Method นั้น