this post was submitted on 30 Jun 2023
7 points (100.0% liked)

JavaScript

2000 readers
1 users here now

founded 1 year ago
MODERATORS
 

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 of class 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.

top 5 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 1 year ago

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)

[–] Kalabasa 5 points 1 year ago (1 children)

It’s much better than the alternative, which is the .prototype. system thing that I still don’t fully get.

[–] DonjonMaister 2 points 1 year ago

Yeah, I don't fully understand it either πŸ˜….

[–] bugsmith 5 points 1 year ago* (last edited 1 year ago)

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".

[–] [email protected] 2 points 1 year ago

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