Global Object ใน JavaScript คือออบเจ็กต์ระดับสูงสุดที่มีอยู่ตลอดการทำงานของสคริปต์ ใน Browser คือ window ใน Node.js คือ global (ES2020 มี globalThis เป็นมาตรฐานข้ามแพลตฟอร์ม)
คุณสมบัติหลัก
- สร้างขึ้นอัตโนมัติเมื่อ Scripting Engine เริ่มต้น
- ไม่สามารถสร้างด้วย
newได้ - ให้เข้าถึง Built-in Functions, Values, Global Variables/Functions
การเข้าถึง Built-in Functions
alert("Demo Text"); // ผ่าน Global Object โดยตรง
window.alert("Demo Text"); // ผ่าน window (Browser) อย่างชัดเจน
การเข้าถึง Global Variables/Functions
<html>
<head>
<script>
var str = "Demo Text";
// เข้าถึงผ่าน window
alert(window.str); // "Demo Text"
</script>
</head>
<body>
</body>
</html>
Global Object ในสภาพแวดล้อมต่างๆ
| Environment | Global Object |
|---|---|
| Browser | window (และ self, frames) |
| Node.js | global |
| Web Workers | self |
| ES2020+ (ทั้งหมด) | globalThis (มาตรฐาน) |
Global Properties/Methods สำคัญ
- Values:
undefined,Infinity,NaN,null(keyword) - Functions:
eval(),isNaN(),parseInt(),parseFloat(),encodeURI(),decodeURI() - Constructors:
Object,Array,Function,Date,RegExp,Promise,Map,Set,Error, ฯลฯ - Others:
console,Math,JSON,Reflect
Best Practice: หลีกเลี่ยงการสร้าง Global Variables/Functions มากเกินไป ใช้ Modules (ES Modules) หรือ IIFE/Closures เพื่อจำกัดขอบเขต