资讯专栏INFORMATION COLUMN

es6基础0x013:WeakSet

trigkit4 / 2073人阅读

摘要:概述和差不多,但是有一些不同只能存储对象,不能存储任意值不可迭代是弱引用,也就是如果没有变量引用内的值,很容易被回收初始化因为只能存储对象,所以这里我想只能传入类似对象数组之类的东西对象数组添加判断是否已经有了删除弱引用特性后输出,可以看到

0x000 概述

WeakSetSet差不多,但是有一些不同:

WeakSet只能存储对象,不能存储任意值

WeakSet不可迭代

WeakSet是弱引用,也就是如果没有变量引用WeakSet内的值,很容易被回收

0x001 初始化
 new WeakSet([iterable]);

因为只能存储对象,所以这里我想只能传入类似对象数组之类的东西

对象数组

new WeakSet([{name:1},{name:2}]) //WeakSet(2){{name:1},{name:2}}

0x002 添加
let weakset=new WeakSet()
weakset.add({num:1})
weakset.add({num:2})
0x003 判断是否已经有了
let data={num:1}
let weakset=new WeakSet()
weakset.add(data)
weakset.add({num:2})
weakset.has(data) //true
weakset.has({num:2}) //false
0x004 删除
let data={num:1}
let weakset=new WeakSet()
weakset.add(data)
weakset.add({num:2})
weakset.delete(data) //true
weakset.delete({num:2}) //false
0x005 弱引用特性
let weakset=new WeakSet([{num:1}])
setTimeout(()=>console.log(weakset),3000)
// 3s 后输出,可以看到,数据没了
WeakSet {}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99248.html

相关文章

  • ES6 - WeakSet

    摘要:这几意味着,在初始化和调用的时候,都只能传入对象类型的元素。如果给方法传入非对象类型,会抛出错误。 在我们进入在WeakSet的使用之前,我们先来看一个用Set来存储对象引用的例子: let set = new Set(); let key = {}; set.add(key); key = null; console.log(set.size); // 1 console.log([...

    Jiavan 评论0 收藏0
  • 带你入门 JavaScript ES6 (五) 集合

    摘要:一概述集合是引入的新的内置对象类型,其特点同数学意义的集合,即集合内所有元素不重复元素唯一。数组集合对比数组和集合,数组可以加入重复数据,而集合的所有元素是唯一的不允许重复。因此,适合临时存放一组对象,以及存放跟对象绑定的信息。 本文同步带你入门 带你入门 JavaScript ES6 (五) 集合,转载请注明出处。 前面我们学习了: for of 变量和扩展语法 块作用域变量和解构...

    BetaRabbit 评论0 收藏0
  • es6 Set和WeakSet

    摘要:返回一个布尔值,表示该值是否为的成员。清除所有成员,没有返回值。上面代码中,方法返回的遍历器,同时包括键名和键值,所以每次输出一个数组,它的两个成员完全相等。因此,适合临时存放一组对象,以及存放跟对象绑定的信息。 Js大部分历史时期都只存在一种集合类型,也就是数组类型。数组在 JS 中的使用正如其他语言的数组一样,但缺少更多类型的集合导致数组也经常被当作队列与栈来使用。数组只使用了数值...

    marser 评论0 收藏0
  • 细说es6中的Set和Map

    摘要:返回一个布尔值,表示该值是否为的成员。返回键名的遍历器返回键值的遍历器返回键值对的遍历器使用回调函数遍历每个成员需要特别指出的是,的遍历顺序就是插入顺序。该数组的所有成员,都会自动成为实例对象的成员。这意味着,数组的成员只能是对象。 1.Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构...

    Ryan_Li 评论0 收藏0
  • es6基础0x021:反射

    摘要:概述反射说起来和上一章节的代理基本一样,只是使用的方式不同,设计理念也不同。 0x000 概述 反射说起来和上一章节的代理基本一样,只是使用的方式不同,设计理念也不同。 反射提供了一系列的静态函数,可以使用Reflect.function_name(...prams)调用,这一系列的方法和代理的处理器对象方法一致 0x001 apply 语法 Reflect.apply(targ...

    booster 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<