Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phương thức .clear() trong WeakMap JavaScript

WeakMap.prototype.clear() xóa tất cả cặp key/value khỏi WeakMap.

Lưu ý quan trọng: Phương thức này đã bị loại khỏi spec (ES6+ không còn chuẩn). Nếu cần, tự implement wrapper:

class ClearableWeakMap {
  constructor(init) {
    this._wm = new WeakMap(init);
  }
  clear() {
    this._wm = new WeakMap(); // tạo instance mới rỗng
  }
  delete(k) { return this._wm.delete(k); }
  get(k) { return this._wm.get(k); }
  has(k) { return this._wm.has(k); }
  set(k, v) { this._wm.set(k, v); return this; }
}

Tại sao bị xóa? WeakMap key yếu (weak reference) — không thể liệt kê key nên không thể clear an toàn. Tạo instance mới là cách duy nhất.