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

网站开发产品需求说明可以看违禁网页的浏览器

网站开发产品需求说明,可以看违禁网页的浏览器,宜兴做网站的公司,相亲小程序源码WeakMap简介 作为es6一种新的数据结构#xff0c;他是一种键值对的集合。与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 对象。 应用场景 Vue 3 的响应式系统使用了 Proxy 对象来拦截对响应式对象的访问然后在内部使用 WeakMap 来跟踪对象与其对应的副作用例如渲染函数或侦听器。这样当响应式对象发生变化时Vue 3 可以根据这些依赖关系自动进行更新。 通过 WeakMapVue 3 实现了一种弱引用关系这意味着如果一个对象不再被其他地方引用它将被垃圾回收机制自动回收同时也会自动清理相应的依赖关系。 WeakMap还常常被用来保存对象的私有数据。这是因为WeakMap的键不可遍历所以我们可以利用这个特性来存储一些只有特定代码能够访问的数据。 上面是一个人们经常拿来说明WeakMap应用场景的一个方法但实际上描述并不完全正确。 实际上WeakMap 方式定义私有属性的主要作用是保护属性的名称防止和其他实例的同名属性发生冲突。但不能保证属性的值不被修改。使用getPrivateVal方法外还可以直接使用privateData.get(obj)的方式进行访问甚至对值进行修改。 曾经看到使用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://www.hkea.cn/news/14544403/

相关文章:

  • 网站主办者和所有者区别富阳网站建设 优帮云
  • 专做酒的小程序网站html门户网站模板
  • 增城定制型网站建设东莞网站建设 牛魔网
  • 济南企业自助建站网站需求建设关系书
  • 南京做网站咨询南京乐识网站服务器怎么进
  • 网站制作培训费用能源与动力工程
  • 苏州手机网站建设搜索引擎排名2020
  • 财佰通突然做网站维护什么是网络营销产生的观念基础
  • 做标识的网站 知乎壁纸公司网站源码
  • 大学网站群建设方案网页设计是什么岗位
  • 惠网 做网站制作网页网站
  • 北京免费网站建设助邦建筑工程网
  • 5种可以给网站带来流量的方式黄埔定制型网站建设
  • wordpress系统设置网站搜索优化怎么做
  • 让自己的电脑做网站的服务器拼多多无货源电商怎么做
  • 求一个旅游网站的代码广东汕头网络科技有限公司
  • 外国设计网站wordpress浏览doc
  • 重庆建设车业官方网站discuzq主题
  • php网站开发好找工作吗计算机平面设计主要学什么
  • 网站建设w亿玛酷1流量订制放网站的服务器吗
  • 余姚网站建设的公司中国建设银行邢台分行网站
  • 电子商务网站与建设课件个人开通微信小程序
  • 博物馆网站 微信 微博 建设无锡app定制
  • 如何自己设计一个网站广告效果图设计
  • 帮做钓鱼网站会怎样一家只做外卖的网站
  • 搜索网站的方法手机互动网站建设
  • 怎么优化网站关键词排名贵州省建设学校官方网站
  • 域名注册的网站网络营销媒体有哪些
  • 网站推广方法及特点南京seo关键词优化预订
  • 如何把网站做好wordpress消息推送