06/04/2021, 14:48

Collection WeakMap trong ES6 - Javascript nâng cao

WeakMap là một loại kiểu dữ liệu giống như Map vậy, nghĩa là sẽ tồn tại hai tham số key => value cho mỗi phần tử. Tuy nhiên với WeakMap thì key truyền vào phải là một biến và biến này phải là một Object (class, function, object), con với Map thì bạn có thể thiết lập key là chuỗi, number, object ...

WeakMap là một loại kiểu dữ liệu giống như Map vậy, nghĩa là sẽ tồn tại hai tham số key => value cho mỗi phần tử. Tuy nhiên với WeakMap thì key truyền vào phải là một biến và biến này phải là một Object (class, function, object), con với Map thì bạn có thể thiết lập key là chuỗi, number, object đều được.

1. WeakMap trong ES6

WeakMap cũng có một số phương thức tương tự Map như:

  • Khởi tạo 
  • Thêm phần tử
  • Lấy giá trị phần tử
  • Xóa phần tử
  • Kiểm tra phần tử tồn tại

Ví dụ: Một ví dụ tổng hợp các thao tác trên.

 

// Khởi tạo
var weak = new WeakMap();

// Danh sách key 
var key1 = {};
var key2 = {};

// Thêm phần tử
weak.set(key1, "Giá trị 01");
weak.set(key2, "Giá trị 02");

// Lấy giá trị
console.log(weak.get(key1)); // Giá trị 01
console.log(weak.get(key2)); // Giá trị 02

// Kiểm tra tồn tại
var other_key = {};
console.log(weak.has(key1)); // true
console.log(weak.has(other_key)); // false

// Xóa phần tử
weak.delete(key1);
console.log(weak.get(key1)); // Undefined

 

2. Lời kết

Về phần WeakMap thì không có gì nhiều để trình bày. Kiểu dữ liệu này thường dùng để tạo các dữ liệu dạng private trong class (sẽ học sau), vì vậy với dữ liệu thông thường thì ta nên chọn Map hoặc Set để lưu trữ.

Bài này mình xin ngừng bút tại đây, cám ơn các bạn đã theo dõi series này của mình.

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0