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.

  • hairyballs
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    edit-2
    1 year ago

    I don’t like/use the class keyword in JS, because I quite like the paradigm with prototypes & stuff, and that keyword tries to make it fit into a totally different paradigm, which doesn’t really work IMHO.

    With TS, I find it even more useless, because I can use TS as a functional language, with POD, functions and interfaces only. I’ve written entire projects without ever using and needing this keyword, which is a proof IMHO that it’s an unnecessary addition. Not sure how unpopular is my opinion tho 😅

    BTW, I’ve developped a few strats to have my own style in TS that I like quite a lot. I can tell more if you’re interested.

    • DonjonMaisterOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I don’t like/use the class keyword in JS, because I quite like the paradigm with prototypes & stuff, and that keyword tries to make it fit into a totally different paradigm, which doesn’t really work IMHO.

      I’ve read somewhere that Javascript is more of a prototype-oriented language rather than an object-oriented one. Do you agree with this?

      BTW, I’ve developed a few strats to have my own style in TS that I like quite a lot. I can tell more if you’re interested.

      Thank you! But maybe not right now; I’m still learning the basics. Have you considered write an article about it? 😮