Hàm trong đối tượng trong JavaScript
Bằng cách sử dụng Symbol, chúng ta có thể thêm các hàm vào đối tượng và những hàm này sẽ không tham gia vào quá trình lặp. Hãy thử xem. Giả sử chúng ta có một đối tượng:
let obj = {a: 1, b: 2, c: 3};
Tạo một Symbol:
let sym = Symbol();
Ghi một hàm vào đối tượng với khóa là Symbol của chúng ta:
obj[sym] = function() {
console.log('!!!');
};
Khi lặp qua đối tượng, hàm của chúng ta sẽ không được lặp qua:
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
Lấy hàm của chúng ta bằng cách truyền Symbol của chúng ta (cùng một biến) làm khóa:
let func = obj[sym];
func();
Có thể rút gọn mã:
obj[sym]();
Hãy thêm vào đối tượng một hàm sẽ hiển thị thời gian hiện tại. Sau đó gọi hàm đó.