回転:javascriptの構造関数


Javascriptでは、newキーワードでオブジェクトを作成するには、次の3つのステップが実行されています.
1.新しい一般オブジェクトを作成します.
2.メソッドオブジェクトのprototype属性のすべての属性を新たな一般オブジェクトにコピーします.
3.新しい一般オブジェクトをコンテキストとして、方法オブジェクトを実行します.

function Car(nPrice){
    this.price = nPrice;
}
Car.prototype.doors = 4;

var car = new Car(2000);
これは

var car = new Object();//     Object  
car.doors = Car.prototype.doors;//   prototype  
car.price = 2000;//       ,  car this
------------------------1月26日補充----------------------------------------------------------------------------
javascriptでは、newオペレータを介して関数として機能しますが、実質的にはこのような動作が発生します.
まず、空のオブジェクトを作成して、関数のapplyメソッドを呼び出して、この空のオブジェクトをappyの最初のパラメータとして伝えます.すると、関数内部のthisはこの空のオブジェクトに置き換えられます.

var triangle = new Shape("triangle");
に相当する

var triangle = {};
Shape.apply(triangle, ["triangle"]);