ฟังก์ชันในอ็อบเจกต์ใน JavaScript

ด้วยการใช้สัญลักษณ์ (Symbol) เราสามารถเพิ่มฟังก์ชันเข้าไปในอ็อบเจกต์ได้ และฟังก์ชันเหล่านี้จะไม่ถูกนำมารวมในการวนลูป มาลองทำดูกัน สมมติว่าเรามีอ็อบเจกต์:

javascriptlet obj = {a: 1, b: 2, c: 3};

สร้างสัญลักษณ์ขึ้นมา:

javascriptlet sym = Symbol();

บันทึกฟังก์ชันลงในอ็อบเจกต์โดยใช้คีย์ที่เป็นสัญลักษณ์ของเรา:

javascriptobj[sym] = function() {
  console.log('!!!');
};

เมื่อวนลูปอ็อบเจกต์ ฟังก์ชันของเราจะไม่ถูกวนลูป:

javascriptfor (let key in obj) {
  console.log(obj[key]); // 1, 2, 3
}

เรียกฟังก์ชันของเราด้วยการส่งคีย์ที่เป็นสัญลักษณ์ของเรา (ตัวแปรเดียวกัน):

javascriptlet func = obj[sym];
func();

สามารถย่อโค้ดได้ดังนี้:

javascriptobj[sym]();
Задание 1

เพิ่มฟังก์ชันเข้าไปในอ็อบเจกต์ที่แสดงเวลาปัจจุบัน จากนั้นเรียกใช้ฟังก์ชันนี้