前のビデオにようこそ、私たちは、javascriptがプロトタイプチェーンを仕上げることで、オブジェクトのメソッドとプロパティを見つけられることを確認しました。
プロトタイププロパティは、そのコンストラクタ関数から作成されたすべてのオブジェクトの中で共有したいプロパティとメソッドを配置するのに最適な場所であることもわかりました。
例を見て、プロトタイプオブジェクトにメソッドやプロパティを配置することが非常に効率的である理由を見てみましょう。
この例では、person constructor関数から作成されたオブジェクトにSay hiというメソッドを追加します。
これで完全にうまくいくはずです。
しかし、ちょうど私たちがしたことについてもう少し考えてみましょう。
personオブジェクトが作成されるたびに、そのオブジェクトに対してこの関数を定義する必要があります。
したがって、コンストラクタから100万個のオブジェクトを作成するときに、同じ高さのプロパティを追加しています。
百万回は非常に効率的ではないようです。
一度定義すれば、人のコンストラクタから作成されたすべてのオブジェクトからアクセスできるようになり、プロトタイププロパティにメソッドを配置するだけで、以下の例ではできます。
私たちは上からコードをリファクタリングしていますので、このコードがはるかに効率的で、javascriptのオブジェクト指向プログラミングでベストプラクティスを使用すれば、高い機能を定義することができます。
今ではあなたの番です。
ビークルのコンストラクタ関数を作成します。
このコンストラクタ関数から作成されたすべてのオブジェクトは、makeモデルとyearプロパティを持つ必要があります。各オブジェクトには、runningと呼ばれるプロパティも必要です。これはfalseに等しくなければなりません。
onという関数があります。この関数は、そのオブジェクトのrunningプロパティをtrueに変更します。ローカルコンストラクターから作成されたすべてのオブジェクトには、turn
offという関数があります。
Vehicleコンストラクターから作成されたすべてのオブジェクトには、Turn
最後に、ビークルコンストラクターから作成されたすべてのオブジェクトに、ビープ音を出力するhonkというメソッドが必要です。
そのオブジェクトの実行中プロパティがtrueの場合のみ。
コンストラクタ関数から作成された車両オブジェクトに対して、これらのプロパティとメソッドのそれぞれを定義する場所を考え、次のビデオの解決策を検討してください。
がんばろう