← flaviocopes.com

JavaScript Private Class Fields

Published Jul 09 2019

Before the introduction of private class fields, we could not really enforce private properties on a class. We used conventions instead, maybe using _ as an hint that the field is private, like this:

class Counter {
  _count = 0

  increment() {
    this._count++
  }
}

But we could access the count using

const counter = new Counter()
counter._count

We can now use private class fields that enforce private fields:

class Counter {
  #count = 0

  increment() {
    this.#count++
  }
}

We now can’t access this value from the outside. Trying to access it will raise a syntax error.

This is part of the new class fields proposal, which you can use since Chrome 72 and Node 12.



Wanna go from noobie to expert?

I wrote an entire book on this topic πŸ‘‡

I also got a super cool course πŸ‘‡

© 2023 Flavio Copes Flavio Copes using Notion to Site Notion to Site

Interested in solopreneurship?