Actually this is a terminology war. Your definition of OOP is that it cannot contain the perfectly legitimate ECMA compliant Class. The reason, you say, is because it's internal implementation uses the prototype inheritance
(PI) system. Which you refer to as inheritance and call 'syntactic sugar'.
Nonsense. The word inheritance alone, as used above does not mean PI. Google and 25 years of OOP show that clearly. Besides OOP folks don't favor inheritance, they favor composition, just like Javascript does.
Besides all OOP winds up at small reusable functions anyway. It's much cleaner and easier to use the class than writing out verbose PI statements for properties.
Making a statement like 'not good for small projects' in my mind, is only a Javascript centric way of thinking. Using the Class construct is legit and ultimately has zero run time performance effects. For many OOP centric people it's a preferred choice. Besides sugar in any form is sweet.
JavaScript classes are not classes in the traditional OOP sense
Internals aside there's little difference in how they behave in JavaScript and C# for example.
I'm not sure I understand what you mean.
JavaScript folks freely mix the words OOP and Inheritance when 1) They really know little about OOP and 2) They really mean Protypal Inheritance which is not the traditional meaning of the word Inheritance.
Debatable.
If you are seeing anyone favor inheritance over composition then you are working with junior level developers.
There is no problem with using the class construct in JavaScript.
The whole point of my replies. Plenty of folks will prefer the simplicity of using the Class over (PI). I'm one of them
I'm not really defensive, just willing to challenge absolute statements that are not universally true.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
No mention of inheritance was made. What was shown was merely a class definition with methods.
Actually this is a terminology war. Your definition of OOP is that it cannot contain the perfectly legitimate ECMA compliant Class. The reason, you say, is because it's internal implementation uses the prototype inheritance
(PI) system. Which you refer to as inheritance and call 'syntactic sugar'.
Nonsense. The word inheritance alone, as used above does not mean PI. Google and 25 years of OOP show that clearly. Besides OOP folks don't favor inheritance, they favor composition, just like Javascript does.
Besides all OOP winds up at small reusable functions anyway. It's much cleaner and easier to use the class than writing out verbose PI statements for properties.
Making a statement like 'not good for small projects' in my mind, is only a Javascript centric way of thinking. Using the Class construct is legit and ultimately has zero run time performance effects. For many OOP centric people it's a preferred choice. Besides sugar in any form is sweet.
Internals aside there's little difference in how they behave in JavaScript and C# for example.
JavaScript folks freely mix the words OOP and Inheritance when 1) They really know little about OOP and 2) They really mean Protypal Inheritance which is not the traditional meaning of the word Inheritance.
If you are seeing anyone favor inheritance over composition then you are working with junior level developers.
The whole point of my replies. Plenty of folks will prefer the simplicity of using the Class over (PI). I'm one of them
I'm not really defensive, just willing to challenge absolute statements that are not universally true.