there is an example code but it doesn't prove anything. But it was created to show that :
"That actually does the same as assigning it as a property directly:"
"The property name is not placed into User.prototype. Instead, it is created by new before calling the constructor, it’s a property of the object itself."
you are talking about some features of "class properties" but the example code doesn't show these features. I changed the example code to show that defining property out of the constructor method is different from defining method in class structure.
"computed property" term can make us recall "dynamically computed property" like fullname. And it can create misunderstanding.
get fullname(){
return this.name+ ' ' + this.surname;
}
and -> or, methods -> methods
I also have a question on the subject of this sentence (should this be a separate discussion entry?):
In the "Extending built-in classes" article, in the "No static inheritance in built-ins" subsection, one finds:
"But built-in classes are an exception. They don’t inherit statics from each other.
For example, both Array and Date inherit from Object, so their instances have methods from Object.prototype. But Array.[[Prototype]] does not reference Object, so there’s no Array.keys() and Date.keys() static methods."
In the "Extending built-in classes" article, in the "No static inheritance in built-ins" subsection, one finds:
"But built-in classes are an exception. They don’t inherit statics from each other.
For example, both Array and Date inherit from <code>Object</code>, so their instances have methods from <code>Object.prototype</code>. But <code>Array.[[Prototype]]</code> does not reference <code>Object</code>, so there’s no <code>Array.keys()</code> and <code>Date.keys()</code> static methods."
This is a subject of some curiosity for me. Through a little testing, I believe I have found that, in fact <code>Array.[[Prototype]]</code> DOES, however, reference <code>Function.prototype</code>, i.e. <code>Array.__proto__ === Function.prototype</code> (<code>true</code>). (As does <code>Date.[[Prototype]]</code>). Is there someplace where this is explained? (Preferably in a way an intelligent 11-year-old could understand?).