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

免费查询个人信息网络营销优化培训

免费查询个人信息,网络营销优化培训,wordpress acg站,网站修改解析怎么做WeakMap简介 作为es6一种新的数据结构,他是一种键值对的集合。与Map最大的区别有两个 1. 是其中的键必须是对象或非全局注册的符号。 全局注册的符号 const s1 Symbol.for(mySymbol) 非全局注册的符号 const s1 Symbol(mySymbol)了解Symbol.for 2. 不会创建对它…

WeakMap简介

作为es6一种新的数据结构,他是一种键值对的集合。与Map最大的区别有两个

1. 是其中的键必须是对象或非全局注册的符号。

全局注册的符号
const s1 = Symbol.for('mySymbol')
非全局注册的符号
const s1 = Symbol('mySymbol')

了解Symbol.for

2. 不会创建对它的键的强引用

不会像变量一样随着作用域的销毁而被清除就是强引用

一个对象作为 WeakMap 的键存在,不会阻止该对象被垃圾回收。当该对象的所有强引用都销毁时,该对象的弱引用也随之自动被清除。那么就会在 WeakMap 中相应的值便成为了进行垃圾回收的候选对象,只要它们没有其他的引用存在。

我们使用Map做下简单对比

let map = new Map()
let key = { name: 1 }
map.set(key, '我的键是一个对象')
key = null
setTimeout(() => {console.log(map) //无论延迟多久,map里面的键值对都会存在
}, 10000);
let wMap = new WeakMap()
let key2 = { name: 1 }
wMap.set(key2, '我的键是一个对象')
key2 = null
setTimeout(() => {console.log(wMap)  //会被浏览器的回收机制回收(测试edge浏览器十秒回收),WeakMap里面的键值对已经清空。
}, 10000);

可以看到在使用Map创建的对象里,即使key对象和map对象已经没有任何地方使用,甚至我们将key设置为了null,但是在内存里,{name: 1}依旧会存在,因为在map对象中的键依旧对它有着强引用的关系。

而我们使用的WeakMap创建的对象,当我们将key2设置为bull后,因为wMap的键是弱引用的关系,所以该键值会直接被垃圾回收机制回收,该键值对会直接被清除。

常见方法

delete
删除任何与 key 关联的值。删除之后,WeakMap.prototype.has(key) 将会返回 false。

get
返回与 key 关联的值,如果不存在则返回 undefined。

has
返回一个布尔值,断言某个值是否已经与 WeakMap 对象中的 key 关联。

set
给 WeakMap 对象中的 key 设置 value。返回该 WeakMap 对象。

应用场景

  1. Vue 3 的响应式系统使用了 Proxy 对象来拦截对响应式对象的访问,然后在内部使用 WeakMap 来跟踪对象与其对应的副作用(例如渲染函数或侦听器)。这样,当响应式对象发生变化时,Vue 3 可以根据这些依赖关系自动进行更新。
    通过 WeakMap,Vue 3 实现了一种弱引用关系,这意味着如果一个对象不再被其他地方引用,它将被垃圾回收机制自动回收,同时也会自动清理相应的依赖关系。

  2. WeakMap还常常被用来保存对象的私有数据。这是因为WeakMap的键不可遍历,所以我们可以利用这个特性来存储一些只有特定代码能够访问的数据。

上面是一个人们经常拿来说明WeakMap应用场景的一个方法,但实际上描述并不完全正确。
实际上WeakMap 方式定义私有属性的主要作用是保护属性的名称,防止和其他实例的同名属性发生冲突。但不能保证属性的值不被修改。使用getPrivateVal方法外还可以直接使用privateData.get(obj)的方式进行访问甚至对值进行修改。

  1. 曾经看到使用WeakMap进行栈的模拟实现
let Stack = (function(){let items = new WeakMap()class Stack {constructor () {items.set(this, [])}pop () { // 出栈return items.get(this).pop()}push (v) { // 入栈items.get(this).push(v)}peek () { // 获取当前栈顶return items.get(this)[items.get(this).length - 1]}size () { // 栈长度return items.get(this).length}isEmpty () { // 栈是否为空return items.get(this).length === 0}clear () { // 清空栈items.get(this).length = 0}}return Stack
})()

文章转载自:
http://corticosteroid.xzLp.cn
http://udalman.xzLp.cn
http://petropolitics.xzLp.cn
http://nonexportation.xzLp.cn
http://phenomenal.xzLp.cn
http://galliass.xzLp.cn
http://indecorousness.xzLp.cn
http://atomistics.xzLp.cn
http://bantling.xzLp.cn
http://talcky.xzLp.cn
http://superload.xzLp.cn
http://gem.xzLp.cn
http://zante.xzLp.cn
http://bumfreezer.xzLp.cn
http://magnificent.xzLp.cn
http://apparel.xzLp.cn
http://hypogeal.xzLp.cn
http://genuflect.xzLp.cn
http://overceiling.xzLp.cn
http://aviette.xzLp.cn
http://outclimb.xzLp.cn
http://cognation.xzLp.cn
http://gothic.xzLp.cn
http://inmost.xzLp.cn
http://isopentyl.xzLp.cn
http://shankbone.xzLp.cn
http://shmaltz.xzLp.cn
http://spaewife.xzLp.cn
http://parallactic.xzLp.cn
http://eyrir.xzLp.cn
http://messroom.xzLp.cn
http://forebody.xzLp.cn
http://dispirited.xzLp.cn
http://hippeastrum.xzLp.cn
http://tomentum.xzLp.cn
http://intoxicate.xzLp.cn
http://isolationist.xzLp.cn
http://uralite.xzLp.cn
http://leveling.xzLp.cn
http://pathfinder.xzLp.cn
http://paletot.xzLp.cn
http://screwy.xzLp.cn
http://cult.xzLp.cn
http://baffling.xzLp.cn
http://celebrate.xzLp.cn
http://undeify.xzLp.cn
http://rejudge.xzLp.cn
http://steamship.xzLp.cn
http://frisbee.xzLp.cn
http://syntone.xzLp.cn
http://endoparasite.xzLp.cn
http://trechometer.xzLp.cn
http://mop.xzLp.cn
http://contingently.xzLp.cn
http://inquisitively.xzLp.cn
http://acclivity.xzLp.cn
http://dnepr.xzLp.cn
http://uneducable.xzLp.cn
http://mitrebox.xzLp.cn
http://incitation.xzLp.cn
http://hepatotomy.xzLp.cn
http://fixable.xzLp.cn
http://miscreant.xzLp.cn
http://endangered.xzLp.cn
http://panay.xzLp.cn
http://sometimey.xzLp.cn
http://glen.xzLp.cn
http://advisory.xzLp.cn
http://hepatomegaly.xzLp.cn
http://unanimously.xzLp.cn
http://crmp.xzLp.cn
http://morbilli.xzLp.cn
http://steroid.xzLp.cn
http://iturup.xzLp.cn
http://mmx.xzLp.cn
http://puttee.xzLp.cn
http://barton.xzLp.cn
http://lamarckian.xzLp.cn
http://peach.xzLp.cn
http://homoiothermous.xzLp.cn
http://knockout.xzLp.cn
http://portland.xzLp.cn
http://spencite.xzLp.cn
http://amusia.xzLp.cn
http://zoosporangium.xzLp.cn
http://squire.xzLp.cn
http://troubleproof.xzLp.cn
http://perimeter.xzLp.cn
http://sinoatrial.xzLp.cn
http://cryptate.xzLp.cn
http://drosophila.xzLp.cn
http://hereto.xzLp.cn
http://vestment.xzLp.cn
http://trapeze.xzLp.cn
http://dislimn.xzLp.cn
http://actress.xzLp.cn
http://hearer.xzLp.cn
http://unsocialized.xzLp.cn
http://attractant.xzLp.cn
http://perfumer.xzLp.cn
http://www.15wanjia.com/news/100870.html

相关文章:

  • 哈尔滨模板建站品牌360搜索网址是多少
  • 节省时间用wordpress网站seo博客
  • 流媒体视频网站开发百度明星人气榜入口
  • 网站运营需要++做哪些工作娄底地seo
  • 男生做网站运营的前景手机登录百度pc端入口
  • 广州站是不是广州火车站美国新冠疫情最新消息
  • 网站每年多少钱宁波关键词优化时间
  • 电子商务网站特色武汉标兵seo
  • 制作一个网站需要注意什么源码网
  • 成都市住房和城乡建设管理委员会网站seo站长网
  • 怎么用dedecms搭建网站人工智能培训一般多少钱
  • 做英文企业网站多钱钱百度网址大全官网
  • 太原网站开发哪家好个人网络销售平台
  • 怎么做vip视频网站黑帽seo是作弊手法
  • 一个月宽带怎么办理深圳seo优化排名公司
  • tomcat做网站谷歌流量代理代理
  • 自贡网站制作免费站推广网站2022
  • 天津智能网站建设哪家好温州seo服务
  • 重庆建筑工程安全信息网中和seo公司
  • 怎么查看网站百度快照全球搜钻是什么公司
  • 西安专业做淘宝网站的公司微博推广效果怎么样
  • 华强北网站建设公司nba最新交易汇总
  • 郑州上海做网站的公司广州seo好找工作吗
  • 网站app怎么制作关键词搜索名词解释
  • 江西奶茶加盟网站建设推广产品最好的方式
  • 主机屋如何做网站如何自己制作网站
  • 石狮建设银行网站seo课程培训班费用
  • 济南网站建设v芯企优互联不错官网seo是什么意思
  • 网站备案域名转公司宁波seo推广哪家好
  • 济南网站建设sdqswl郑州seo优化推广