ฟังก์ชันในอ็อบเจกต์ใน JavaScript
ด้วยการใช้สัญลักษณ์ (Symbol) เราสามารถเพิ่มฟังก์ชันเข้าไปในอ็อบเจกต์ได้ และฟังก์ชันเหล่านี้จะไม่ถูกนำมารวมในการวนลูป มาลองทำดูกัน สมมติว่าเรามีอ็อบเจกต์:
let obj = {a: 1, b: 2, c: 3};
สร้างสัญลักษณ์ขึ้นมา:
let sym = Symbol();
บันทึกฟังก์ชันลงในอ็อบเจกต์โดยใช้คีย์ที่เป็นสัญลักษณ์ของเรา:
obj[sym] = function() {
console.log('!!!');
};
เมื่อวนลูปอ็อบเจกต์ ฟังก์ชันของเราจะไม่ถูกวนลูป:
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
เรียกฟังก์ชันของเราด้วยการส่งคีย์ที่เป็นสัญลักษณ์ของเรา (ตัวแปรเดียวกัน):
let func = obj[sym];
func();
สามารถย่อโค้ดได้ดังนี้:
obj[sym]();
เพิ่มฟังก์ชันเข้าไปในอ็อบเจกต์ที่แสดงเวลาปัจจุบัน จากนั้นเรียกใช้ฟังก์ชันนี้