当前位置: 首页 > news >正文

和幼女做视频网站网站制作公司官网

和幼女做视频网站,网站制作公司官网,岳阳网站平台设计,网站做外链好不好WeakMap 是 JavaScript 中的一种特殊集合类型,主要用于存储键值对,但其特性与普通 Map 有显著区别,尤其适合特定场景。以下是其具体使用细节:核心特性1.键必须是对象WeakMap 的键只能是对象(null 除外)&…

WeakMap 是 JavaScript 中的一种特殊集合类型,主要用于存储键值对,但其特性与普通 Map 有显著区别,尤其适合特定场景。以下是其具体使用细节:

核心特性

1.键必须是对象

WeakMap 的键只能是对象(null 除外),不能是原始值(如字符串、数字、布尔值),否则会报错。

const wm = new WeakMap();
wm.set({name: 'a'}, 1); // 有效
wm.set('key', 2); // 报错:TypeError

2.弱引用键

  • 对键的引用是 “弱引用”:如果外部没有其他强引用指向该键对象,垃圾回收机制会自动回收该对象,同时 WeakMap 中对应的键值对也会被移除(无需手动删除)。
  • 这意味着无法遍历 WeakMap(没有 keys()、values()、entries() 方法,也没有 size 属性),因为键可能随时被回收,无法保证遍历的完整性。

常用方法

set(key, value):添加键值对,返回 WeakMap 实例(可链式调用)。

get(key):根据键获取对应值,若键不存在则返回 undefined。

has(key):判断是否存在该键,返回布尔值。

delete(key):删除指定键值对,返回布尔值(成功删除为 true)。

典型使用场景

1.存储对象的私有数据

避免直接在对象上添加属性(可能污染对象),用 WeakMap 关联对象与私有数据,且不会阻碍对象被回收。

const privateData = new WeakMap();class MyClass {constructor(id) {// 用实例对象作为键,存储私有数据privateData.set(this, { id: id, secret: 'xxx' });}getSecret() {return privateData.get(this).secret; // 通过实例获取私有数据}
}const obj = new MyClass(1);
console.log(obj.getSecret()); // 'xxx'
// 当 obj 被销毁(无强引用),privateData 中对应的键值对会自动消失

2.DOM 元素的附加数据

为 DOM 元素绑定额外数据(如状态、缓存),但不希望影响 DOM 元素的回收。

const domData = new WeakMap();
const div = document.querySelector('div');// 存储数据
domData.set(div, { count: 0, status: 'active' });// 使用数据
console.log(domData.get(div).count); // 0// 当 div 被移除且无其他引用时,domData 中对应数据会自动清除

3.缓存计算结果

缓存基于对象的计算结果,当对象被回收时,缓存自动失效,节省内存。

const cache = new WeakMap();function calculate(obj) {if (cache.has(obj)) {return cache.get(obj); // 命中缓存}const result = /* 复杂计算 */ obj.value * 2;cache.set(obj, result); // 缓存结果return result;
}

注意事项

  • 无法遍历:由于键的弱引用特性,无法像 Map 一样遍历所有键值对,也无法获取长度。
  • 不适合需要持久化或遍历的场景:若需遍历或依赖键的存在性,应使用普通 Map。

WeakMap 的核心价值在于 “弱引用” 带来的自动内存管理,尤其适合关联对象与临时 / 私有数据,避免内存泄漏。

http://www.laogonggong.com/news/116.html

相关文章:

  • 大英县住房和城乡建设局网站深圳知名seo公司
  • 一个网站建设的组成购物网站如何推广
  • 东莞哪里有网站建设厂家中国域名注册官网
  • 临湘市网站线上营销推广方案
  • 如何做微网站网络营销品牌
  • 网站建设的背景有哪些刚刚济南发通知
  • a设计网站有哪些如何优化关键词搜索排名
  • 东莞虎门最新消息seo推广的网站和平台有哪些
  • 易语言做网站客户端千锋教育培训机构可靠吗
  • 网页兼容性 网站开发灰色关键词怎么做排名
  • 合肥网站建设网页设计网络营销推广方案策划书
  • 网站建设思企互联俄罗斯网络攻击数量增长了80%
  • 站长之家查询网站全网营销是什么意思
  • 网站源码怎么上传一个平台怎么推广
  • 北京网站建设最便宜的公司哪家好比较好的搜索引擎
  • 企业网站备案信息南昌seo排名公司
  • 做街机棋牌上什么网站发广告重庆人力资源和社会保障网官网
  • 网站建设和原则企业网站优化方案案例
  • 建设网站需要什么设施?泰州seo外包公司
  • 小程序开发一键生成平台源码青岛seo青岛黑八网络最强
  • 网站开发需要什么东西爱站工具seo综合查询
  • 手机上能安装微信网页版seo服务公司上海
  • 淘宝京东网站建设目的成品网站源码在线看
  • 企业网站的综合要求是什么企业网络营销策划方案
  • 高校学校网站建设东莞谷歌推广
  • 如何做网站广告今日新闻摘抄10条简短
  • 江门建站网站模板百度网盘在线观看资源
  • 青岛外贸建设网站成都网络推广中联无限
  • 在哪做网站关键词sem和seo
  • 西安网站建设公司有哪些怎么在网上做广告