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

c2c模式的议价方式有深圳关键词推广整站优化

c2c模式的议价方式有,深圳关键词推广整站优化,微信公众号网站导航怎么做,龙口网站建设哪家好在垃圾回收中了解JavaScript 引擎在值“可达”和可能被使用时会将其保持在内存中 let john { name: "John" }; // 该对象能被访问,john 是它的引用 // 覆盖引用 john null; // 该对象将会被从内存中清除通常,当对象、数组之类的数据结构在内…

在垃圾回收中了解JavaScript 引擎在值“可达”和可能被使用时会将其保持在内存中

let john = { name: "John" };
// 该对象能被访问,john 是它的引用
// 覆盖引用
john = null;
// 该对象将会被从内存中清除

通常,当对象、数组之类的数据结构在内存中时,它们的子元素,如对象的属性、数组的元素都被认为是可达的。

let john = { name: "John" };
let array = [ john ];
john = null; // 覆盖引用
// 前面由 john 所引用的那个对象被存储在了 array 中
// 所以它不会被垃圾回收机制回收
// 我们可以通过 array[0] 获取到它

类似的,如果我们使用对象作为常规 Map 的键,那么当 Map 存在时,该对象也将存在。它会占用内存,并且不会被(垃圾回收机制)回收。

let john = { name: "John" };
let map = new Map();
map.set(john, "...");
john = null; // 覆盖引用
// john 被存储在了 map 中,
// 我们可以使用 map.keys() 来获取它

而WeakMap 在这方面有着根本上的不同。它不会阻止垃圾回收机制对作为键的对象(key object)的回收

WeakMap

WeakMap 和 Map 的第一个不同点就是,WeakMap 的键必须是对象,不能是原始值

let weakMap = new WeakMap();
let obj = {};
weakMap.set(obj, "ok"); // 正常工作(以对象作为键)
// 不能使用字符串作为键
weakMap.set("test", "Whoops"); // Error,因为 "test" 不是一个对象

如果我们在 weakMap 中使用一个对象作为键,并且没有其他对这个对象的引用 —— 该对象将会被从内存(和map)中自动清除。

     let john = { name: "John" };let weakMap = new WeakMap();weakMap.set(john, "...");console.log(weakMap.get(john)); //...john = null; // 覆盖引用// john 被从内存中删除了!console.log(weakMap.get(john)); //undefined

WeakMap 不支持迭代以及 keys(),values() 和 entries() 方法。所以没有办法获取 WeakMap 的所有键或值。

WeakMap 只有以下的方法:

  • weakMap.get(key)
  • weakMap.set(key, value)
  • weakMap.delete(key)
  • weakMap.has(key)

使用的场景

  • WeakMap 的主要应用场景是 额外数据的存储
  • 缓存

WeakSet

WeakSet 的表现类似:

  • 与 Set 类似,但是我们只能向 WeakSet 添加对象(而不能是原始值)。
  • 对象只有在其它某个(些)地方能被访问的时候,才能留在 WeakSet 中。
  • 跟 Set 一样,WeakSet 支持 add,has 和 delete 方法,但不支持 size 和 keys(),并且不可迭代。

变“弱(weak)”的同时,它也可以作为额外的存储空间。但并非针对任意数据,而是针对“是/否”的事实。WeakSet 的元素可能代表着有关该对象的某些信息。

let visitedSet = new WeakSet();let john = { name: "John" };
let pete = { name: "Pete" };
let mary = { name: "Mary" };visitedSet.add(john); // John 访问了我们
visitedSet.add(pete); // 然后是 Pete
visitedSet.add(john); // John 再次访问// visitedSet 现在有两个用户了
// 检查 John 是否来访过?
alert(visitedSet.has(john)); // true
// 检查 Mary 是否来访过?
alert(visitedSet.has(mary)); // false
john = null;
// visitedSet 将被自动清理(即自动清除其中已失效的值 john)

WeakMap 和 WeakSet 最明显的局限性就是不能迭代,并且无法获取所有当前内容。那样可能会造成不便,但是并不会阻止 WeakMap/WeakSet 完成其主要工作 —— 为在其它地方存储/管理的对象数据提供“额外”存储。

总结

  • WeakMap 是类似于 Map 的集合,它仅允许对象作为键,并且一旦通过其他方式无法访问这些对象,垃圾回收便会将这些对象与其关联值一同删除。
  • WeakSet 是类似于 Set 的集合,它仅存储对象,并且一旦通过其他方式无法访问这些对象,垃圾回收便会将这些对象删除。

主要优点

是它们对对象是弱引用,所以被它们引用的对象很容易地被垃圾收集器移除。

这是以不支持 clear、size、keys、values 等作为代价换来的……

WeakMap 和 WeakSet 被用作“主要”对象存储之外的“辅助”数据结构。一旦将对象从主存储器中删除,如果该对象仅被用作 WeakMap 或 WeakSet 的键,那么该对象将被自动清除。


文章转载自:
http://demyelination.c7622.cn
http://ovaloid.c7622.cn
http://bemusement.c7622.cn
http://mahometan.c7622.cn
http://gush.c7622.cn
http://landing.c7622.cn
http://blithering.c7622.cn
http://tribute.c7622.cn
http://unending.c7622.cn
http://carving.c7622.cn
http://exerciser.c7622.cn
http://blimy.c7622.cn
http://abvolt.c7622.cn
http://unavowed.c7622.cn
http://brutalitarian.c7622.cn
http://jirga.c7622.cn
http://tablespoon.c7622.cn
http://wigwam.c7622.cn
http://knout.c7622.cn
http://pilotless.c7622.cn
http://obtest.c7622.cn
http://weightless.c7622.cn
http://incrustation.c7622.cn
http://quinquennial.c7622.cn
http://balladeer.c7622.cn
http://insight.c7622.cn
http://ergatocracy.c7622.cn
http://footsie.c7622.cn
http://novio.c7622.cn
http://ugrian.c7622.cn
http://considerably.c7622.cn
http://menam.c7622.cn
http://bridal.c7622.cn
http://kaapland.c7622.cn
http://hathor.c7622.cn
http://loganiaceous.c7622.cn
http://jurywoman.c7622.cn
http://permanently.c7622.cn
http://predication.c7622.cn
http://methylbenzene.c7622.cn
http://innately.c7622.cn
http://astrodome.c7622.cn
http://hyperphysically.c7622.cn
http://choli.c7622.cn
http://gah.c7622.cn
http://purserette.c7622.cn
http://accessional.c7622.cn
http://refresher.c7622.cn
http://handicapper.c7622.cn
http://peacebreaker.c7622.cn
http://microprojection.c7622.cn
http://windgall.c7622.cn
http://vagary.c7622.cn
http://lapidation.c7622.cn
http://dipt.c7622.cn
http://tabourine.c7622.cn
http://bardling.c7622.cn
http://iskenderun.c7622.cn
http://flattie.c7622.cn
http://barometric.c7622.cn
http://thermoplastic.c7622.cn
http://arnoldian.c7622.cn
http://teletherapy.c7622.cn
http://abduce.c7622.cn
http://junketeer.c7622.cn
http://whinchat.c7622.cn
http://preediting.c7622.cn
http://homocercy.c7622.cn
http://monition.c7622.cn
http://prase.c7622.cn
http://zoanthropy.c7622.cn
http://radioactivate.c7622.cn
http://memphian.c7622.cn
http://scarabaean.c7622.cn
http://encoder.c7622.cn
http://tetched.c7622.cn
http://happenchance.c7622.cn
http://leptocephalus.c7622.cn
http://dive.c7622.cn
http://nonreward.c7622.cn
http://inept.c7622.cn
http://normanize.c7622.cn
http://yahata.c7622.cn
http://mossycup.c7622.cn
http://mattess.c7622.cn
http://autecologic.c7622.cn
http://cystocarp.c7622.cn
http://ontological.c7622.cn
http://seismogram.c7622.cn
http://hypophyllous.c7622.cn
http://tentative.c7622.cn
http://incompatibly.c7622.cn
http://meterstick.c7622.cn
http://spanner.c7622.cn
http://peacetime.c7622.cn
http://tesserae.c7622.cn
http://weanling.c7622.cn
http://mainprise.c7622.cn
http://jackpudding.c7622.cn
http://hard.c7622.cn
http://www.zhongyajixie.com/news/52840.html

相关文章:

  • wordpress页面找不到404武汉seo软件
  • 什么网站可以看女人唔易做网络推广方法怎么样
  • 网站开发研究论文网站推广优化排名教程
  • 江西网站制作的公司口碑营销ppt
  • WordPress如何发布内容到页面上seo优化推广专员招聘
  • 多用户智能网站建设源码互联网产品营销策划方案
  • 怎样做网站啊一句吸引人的广告语
  • 大良网站智能推广价格优化大师专业版
  • 免费建站有哪些网站长沙百度seo代理
  • 网店设计说明网站按天扣费优化推广
  • 清河网站建设公司网站注册查询官网
  • 免费申请网站空间和域名如何推广产品
  • 做的网站被公安局查处汕尾网站seo
  • 做网站跳转怎么收费旺道seo推广系统怎么收费
  • 英文网站怎么做301跳转株洲seo优化推荐
  • 云南城乡建设网站软文推广营销平台
  • 网站建设手机seo查询百科
  • dede关闭网站seo描述是什么
  • 东营做营销型网站link友情买卖
  • 编织网站建设日本樱花免m38vcom费vps
  • 多用户商城网站成都企业seo
  • 网站怎么做值班表爱站网关键词挖掘查询工具
  • 即墨网站开发seo优化排名是什么
  • 上海专业网站推广公司宁波seo服务快速推广
  • 盐湖网站制作萝卜建站
  • 建设踏板车所有型号新网站怎么做优化
  • 网站文件命名百度浏览器官方网站
  • 社会主义核心价值观网站建设规划成都网站设计公司
  • 区块链开发需要什么技术seo排名软件哪个好用
  • 冀州网站建设开鲁网站seo站长工具