There are Function objects and instance objects and a Function object is an object declared by Function and an instance object is an object instantiated by a Function object, all Function objects are instantiated objects and a prototype is an instance object, like a base class, the base class of a Function object, The attribute constructor, which is only available to function objects, is not really useful, but is a relic of the history of JavaScript language design. Since the constructor property can be changed, it doesn’t necessarily point to the object’s constructor, just a hint. However, as a matter of programming convention, we should try to maintain this convention by having the object’s constructor point to its constructor.

A.Prototype.construtor === A
Var b = new A()
b.construtor = A
b.__proto__ = A.prottype
Copy the code

Prototype chain refers to the chain of attributes on each prototype Object through the instance Object __proto__, Function. Prototype === empty Function Object. Prototype