WeakMap私有数据的管理

2024-04-10  本文已影响0人  姜治宇

当你需要为对象关联一些私有数据,但又不想这些数据出现在对象的属性链上时,可以使用WeakMap。例如,你可以使用WeakMap来存储组件的私有状态或元数据,而不污染组件的原型链。

const privateData = new WeakMap();

function MyClass() {
  // 私有数据不会暴露在MyClass的实例上
  privateData.set(this, { count: 0 });
}

MyClass.prototype.increment = function() {
  const data = privateData.get(this);
  data.count++;
};

const obj = new MyClass();
obj.increment();
obj.increment();
obj.increment();

const data = privateData.get(obj);
console.log(data);//{count: 3}
上一篇 下一篇

猜你喜欢

热点阅读