上一篇我們了解到了新的數(shù)據(jù)結(jié)構(gòu)Set,這次我們看一下WeakSet,WeakSet跟Set類似,也是不能有重復(fù)的值,但是跟Set相比有兩個(gè)區(qū)別。
第一,WeakSet的成員只能是對(duì)象,而不能是其他類型的值。
第二,WeakSet都是弱引用,當(dāng)所有的對(duì)象都不在引用該對(duì)象的時(shí)候,垃圾回收機(jī)制會(huì)自動(dòng)回收該對(duì)象的內(nèi)存。所以,正因?yàn)檫@個(gè)特點(diǎn),WeakSet的內(nèi)容是不適合被引用的,因?yàn)樗赡茈S時(shí)都會(huì)消失。
WeakSet的語法和set一樣 new WeakSet() ,可以接受一個(gè)數(shù)組或者類似數(shù)組的對(duì)象來當(dāng)做參數(shù),但是數(shù)組的成員也必須是對(duì)象。
WeakSet的常用方法:
add:添加
delete:清除指定對(duì)象
has:返回是否存在
區(qū)別是沒有size屬性,所以沒有辦法執(zhí)行所有的循環(huán)對(duì)象 keys values等
上一篇: 走進(jìn)es6——Set