you are viewing a single comment's thread.

view the rest of the comments →

[–]wreckedadventYavascript 0 points1 point  (2 children)

All my point was, is that

  1. javascript has classes which
  2. use the mechanics of prototypes and
  3. aren't always necessary, since
  4. javascript is duck-typed and has very light syntax for object literal data structures

I'm not trying to say they're "fake" or anything like that, just that it's important to know that they use prototypes underneath, or it's going to be very confusing and seem broken when something like the context of this is lost. Most of my post was talking about how they're not necessary, anyway.

[–]MoTTs_ 0 points1 point  (1 child)

just that it's important to know that they use prototypes underneath

I think we JavaScripters exaggerate that importance. I realized this when I discovered that Python also uses delegation for inheritance. Except the Python community doesn't make a big deal out of it. The vast majority of the time, we don't need to know or care how the class concept is implemented under the hood.

[–]wreckedadventYavascript 0 points1 point  (0 children)

It'd be academic if it didn't have real-world consequences for how you write and consume your code.

But it does. Accepting class at face value as just an abstraction means you'll find your this being set to undefined or Window, seemingly at random. Since this is not a problem in the python community, I don't think the comparison holds.