Actual WeakSet Use Cases

#!/JoePea joe at trusktr.io
Mon Apr 22 18:25:34 UTC 2019


(I edited the broken format of my previous post)

What other use cases are there?

On Mon, Apr 22, 2019 at 11:20 AM #!/JoePea <joe at trusktr.io> wrote:

> > WeakSets are perfect for branding and are how I would expect web
> platform class branding to be explained.
> >
> > ```js
> > const foos = new WeakSet();
> >
> > class Foo {
> >   constructor() {
> >     foos.add(this);
> >   }
> >
> >   method() {
> >     if (!foos.has(this)) {
> >       throw new TypeError("Foo.prototype.method called on an
> incompatible object!");
> >     }
> >   }
> > }
> > ```
>
> Just curious, is that effectively the same as what the (current) [private
> fields proposal](https://github.com/tc39/proposal-class-fields) offers?
>
> ```js
> class Foo {
>   #isFoo = true
>
>   method() {
>     if (this.#isFoo) {
>       throw new TypeError("Foo.prototype.method called on an incompatible
> object!");
>     }
>   }
> }
> ```
>
> - Joe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190422/a382b471/attachment.html>


More information about the es-discuss mailing list