JavaScript Private Class Fields
Introduction and code samples on using private class fields in JavaScript.
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.
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025