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

Wordpress网站删除多余主题自己做网站

Wordpress网站删除多余主题,自己做网站,企业做哪个网站好,电脑软件推广在垃圾回收中了解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://www.qdjiajiao.com/news/10888.html

相关文章:

  • 如何在网站做推广一站式媒体发稿平台
  • 企业网站的维护怎么做网站推广
  • 自己做网站需要什么条件网站如何在百度刷排名
  • 建设的网站太卡网页怎么制作
  • 深圳外贸建站搭建哪家好苏州做网站的专业公司
  • 重庆做网站公司电话软文代写文案
  • 做网站用到什么开发语言最新的域名网站
  • 泰州做网站的室内设计师培训班学费多少
  • 常德网站开发关键词竞价排名
  • wordpress网站分享微信群谷歌关键词查询工具
  • 推销商务网站的途径有哪些seo西安
  • 广告设计专业就业前景怎么样网页seo是什么意思
  • 网站建设提供ftp手游推广赚佣金的平台
  • 长沙企业网站建设分公司搜索引擎关键词排名
  • 网站可信图标市场调研报告包括哪些内容
  • 宁波网站建设工作室美国搜索引擎排名
  • 娄底北京网站建设上海外贸网站seo
  • 做行业网站淘宝推广怎么做
  • 做文学网站算不算开公司最近一两天的新闻有哪些
  • 用什么软件做购物网站app推广好做吗
  • 禁止显示网站目录最好的搜索引擎排名
  • 用pc机做网站并让外网搜到站长工具站长
  • 网站开发公司上海为企业推广
  • 桐柏县建设局网站南京百度推广开户
  • 国外html5做的音乐网站电商seo与sem是什么
  • 企业网站建设 广州广州王牌seo
  • 做网站免费模板怎么上传到空间网络推广公司有哪些
  • 网站做视频好不好西安百度seo排名
  • 已有网站开发app终端seo外链要做些什么
  • 做兼职写小说网站微营销