JavaScriptはもともと想定される継承されました

  JavaScriptが本当のクラス(クラス)とインスタンス(インスタンス)ではありませんが、継承に奇妙なプロトタイプチェーンモデルによる。

  デザインブレンダン・アイクの冒頭では、Javascriptがオブジェクトがある、すべてのオブジェクトをリンクするためのメカニズムが存在しなければなりません。だから、ブレンダン・アイクは、「継承」を設計し しかし、彼はかつて、「クラス」と、Javascriptが完了し、オブジェクト指向のプログラミング言語ですが、これは初心者のための参入障壁を高め、あまりにも正式なようですので、「クラス」(クラス)の概念を導入する予定はありませんでした。

  C ++とJavaは通じクラスの新しいインスタンスを生成するために使用されているので、彼はまた、新しいコマンドJavascriptを導入しました。C ++とJavaは、新しいコマンドは「クラス」コンストラクタ(コンストラクタ)と呼ばれる使用するときに考慮に入れます。JavaScriptは、よりシンプルで親しみやすいようにするには、彼が単純化された設計をした、JavaScript言語は、バックでの新しいコマンドは、クラスではなく、直接コンストラクタです。

  新しいオペレータが都合良くオブジェクトのインスタンスコンストラクタに変換することができるが、メモリ内に生成されたオブジェクトは、互いに独立しており、データは、メモリの浪費をもたらす、共有することができません。

  これを念頭において、ブレンダン・アイクは、ソースオブジェクトのインスタンスを決め、すなわちプロトタイプコンストラクタは、オブジェクトを含む、属性を追加しました。これらのプロパティとメソッドを共有する必要はない、とコンストラクタ内部レイアウト、オブジェクトの例は、オブジェクトの内部に配置されている、すべてのプロパティとメソッドを共有する必要があります。

  各インスタンスコンストラクタ処理において、ポインタがオブジェクトのプロトタイプオブジェクト自体__proto__プロパティインスタンスに配置され、共有オブジェクトは、オブジェクトのすべてのインスタンスを自身のアドレスに相当します。オブジェクトのインスタンスは、プロトタイプオブジェクトでコンストラクタから「継承」かのように、見えます。

おすすめ

転載: www.cnblogs.com/zhangnan35/p/10961990.html