【new operator】
When the code new Foo(...) is executed, the following things happen:
- A new object is created, inheriting from
Foo.prototype.(即新建对象的 __prototype__ 属性与 Foo.prototype 一样) - The constructor function F
oois called with the specified arguments andthisbound to the newly created object.new Foois equivalent tonewFoo(), i.e. if no argument list is specified, Foois called without arguments. - The object returned by the constructor function becomes the result of the whole
newexpression. If the constructor function doesn't explicitly return an object, the object created in step 1 is used instead. (Normally constructors don't return a value, but they can choose to do so if they want to override the normal object creation process.)
You can add a shared property to a previously defined object type by using theFunction.prototype property. This defines a property that is shared by all objects created with that function, rather than by just one instance of the object type. The following code adds a color property with value null to all objects of type car, and then overwrites that value with the string "black" only in the instance object car1.

【Function】
Function objects inherit from Function.prototype. Function.prototype cannot be modified. In JavaScript every function is actually a Function object.
prototype和__proto__是完全不一样的两个东西。

__proto__用于实现继承。
浙公网安备 33010602011771号