cross-posted from: https://programming.dev/post/302850
Hello, everyone 👋. I am a newcomer when it comes to JavaScript. I come from an OOP background (C# and Java). I’ve recently learned that ES6 has a
class
keyword that preforms similarly (but not exactly) to common OOP languages. Normally I would be inclined to use this feature in my projects; however, it came to my attention that the usage ofclass
in JavaScript seems to be heavily discussed (mostly in a negative light). My questions to this community are:
- Should it be used often, sparingly, or be outright avoided?
- What are its advantages and disadvantages?
- Are there specific cases where the usage of
class
excels?Please share your thoughts.
It’s not the best, but people demonize it too much in my opinion. I would say to just use them and see if they work for your use case.
I hear a lot of “just use functions / objects” but for some things (IE, game dev) classes are objectively better in my opinion (it makes more logical sense to do “objects.push(new Car())” than to do it with functions or objects in my opinion, possibly a hot take)
It’s much better than the alternative, which is the
.prototype.
system thing that I still don’t fully get.Yeah, I don’t fully understand it either 😅.
I mean, it’s syntactic sugar but for the most part it will perform in line with how the average Joe expects classes to work.
I use them sometimes. I avoid them other times.
If you’re new to JavaScript, go ahead and use them and if you find s usecase where they don’t work to your expectatiob you can start learning about why there aren’t “true oop classes”.
I think it’s primarily because OOP has fallen out of favor for more functional JS. But when they first introduced classes I was elated because they were way better than the Prototype based inheritance we used to have to deal with. I just don’t want to write OO anymore