I answer this question by jumping from a different angle.
This is an eternal topic, and we can open a fiery war in many forums.
When people claim that JavaScript is an OO programming language because they can use OOD with this, I ask: why is C not an OO programming language? Repeat, you can use OOD with C, and if you said that C is an OO programming language, everyone will tell you that you are crazy.
We could add a lot of links to this topic in very old books and forums, because this topic is older than the Internet :)
JavaScript has not changed for many years, but new programmers want to show that JavaScript is an OO programming language. What for? JavaScript is a powerful language, but not an OO programming language.
The OO programming language must have objects, a method, a property, classes, encapsulation, aggregation, inheritance, and polymorphism. You can implement all these points, but JavaScript does not have them.
A very illustrative example: Chapter 6 of “Object Oriented JavaScript” describes 10 manners for implementing “inheritance”. How many manners exist in Java? One, but in C ++? Alone, and in Delphi (Object Pascal)? One, but in Objective-C? One.
Why is it different? Because Java, C ++, Delphi, and Objective-C are designed with OOP in mind, but not for JavaScript.
When I was a student (in 1993), the university had a typical homework: run a program developed using OOD (Object-oriented design) with a language other than OO. At that time, the chosen language was C (not C ++). The purpose of this practice was to clearly define the difference between OOP and OOP and can distinguish between OOP and languages other than OOP.
In any case, this indicates that not all people have some opinion on this topic :)
In any case, in my opinion, JavaScript is a powerful language and the future is at the client level!