Content: Introduction to Prototypes, Introduction to Prototype Chains, Relationship between “Constructor”, “Instantiated Object”, and “Prototype”
The Relationship Between Constructor, Instantiated Objects, and Prototype
Constructors have a prototype property, which is also an object;
The prototype object contains a property named constructor, which points back to the constructor that created it;
Instantiated objects have a property proto (not standard and should not be used in coding) that is used internally by browsers and points to the prototype object.
The relationship between proto, prototype, and constructor
1 | // The relationship between __proto__, prototype, and constructor |
Here is the code:
1 | function Car(brand, color) { |
Prototypes
All functions have a prototype property.
The value of this property is an object (which is an instance of Object).
Purpose:
- To enable data sharing (among instantiated objects)
- To implement inheritance
__ proto __
The instance objects created by constructors have a property __proto__
.
Its purpose is to link the nodes in the prototype chain.
- __ proto __ is in the instance objects
- prototype is in the constructors
This property is not standard and should not be used in programming; it’s used internally by browsers and may differ across them.
1 | function Person(name, age) { |
Prototype Chain
The chain-like structure formed between instance objects and prototype objects, which is linked through proto.
The structure of the prototype chain can be modified by resetting the prototype object.
1 | function Foo1(info) { |
Another way to write a prototype chain
1 | function Student(name, age, score) { |
Property Lookup
- When accessing a member of an object, the search starts within the object itself.
- If the object does not have the property, the search moves on to the object’s prototype.
- If the prototype does not have the property, the search moves on to the prototype’s prototype.
- This continues until the prototype of Object, which is null, is reached.
Regarding the generation of the image that illustrates the relationship between constructor, instance, and prototype, that is something that I can assist with. Let’s define what elements and relationships you’d like to visualize, and I can create an image accordingly. Please provide the details you’d like to include in the image.