I. 基本概念
プロトタイプとプロトタイプ・チェーンの体系的な学習では、まず前準備としていくつかの基本を学びます。
jsのオブジェクトはプロトタイプに基づいています。プロトタイプは、新しく生成されたオブジェクトが含まなければならないプロパティのリストを定義し、実装します。インスタンス化された各オブジェクトはそれ自身のプロトタイプやコンストラクタを持ち、これらのプロトタイプやコンストラクタもまたそれ自身のプロトタイプやコンストラクタを持つことがあります。
prototype_proto_とprototypeの間の解釈
プロトタイプの知識をまとめるには、あることを理解する必要があります。
jsでは、オブジェクトを使ったり操作したりすることが多く、オブジェクトとプロトタイプ、プロトタイプチェーンは表裏一体なので、プロトタイプとプロトタイプチェーンはマスターしておきたい内容です。
まず、プロトタイプとは何かを理解しましょう。
プロトタイプ:プロトタイプオブジェクトのオブジェクト
プロトタイプ:関数オブジェクトのサブオブジェクトで、プロトタイプは関数のプロトタイプを表します。
オブジェクトを構築するために最も一般的に使用される方法は、直接オブジェクトを作成し、オブジェクトを作成するコンストラクタを使用するので、それに応じて、関数は、プロトタイプに追加され、関数の追加に起因する、明確なプロトタイプの定義が混乱しやすくなっている、これもプロトタイプとプロトタイプチェーンの難しさの一つである、この困難を打破し、プロトタイプとプロトタイプチェーンは、学習することは非常に容易になり、その後、どのようにそれを突破するには?
直接jsを使用して提供されたコンテンツを解析する価値があるかもしれません。
オブジェクトとコンストラクタを作成します。
let a={};
function b(){
console.log("コンストラクタによってインスタンス化されたオブジェクト");
};
次に、それらのプロトタイプを表示します。
console.dir(a);
console.dir(b);
この時点で、オブジェクトにはプロトタイプ_proto_しか含まれていないのに対し、関数b()にはプロトタイプ_proto_だけでなく、プロトタイプも含まれていることがよくわかります。
jsの定義では、関数もオブジェクトなので、関数はプロトタイプオブジェクト_proto_を含み、関数自身もプロトタイプprototypeを含むので、関数のプロトタイプは_proto_とprototypeの2つあります。
関数を通してインスタンス化されたオブジェクトについてはどうでしょうか?
概念的には、プロトタイプは、新しく生成されるオブジェクトに含まれなければならない属性のリストを定義し、実装します。コンストラクタによってインスタンス化されたオブジェクトは、コンストラクタの属性のリストを含み、このコンストラクタの属性のリストを所有します。
同様に、関数のプロトタイプには関数のプロパティ・リストが含まれているため、この関数をコンストラクタとして使用してオブジェクトをインスタンス化すると、インスタンス化されたオブジェクトのプロトタイプは関数のプロトタイプになります。
b() を使用して、上記の例に基づいてオブジェクトをインスタンス化してみましょう。
let c=new b();
console.dir(c);
bのprototype_proto_に、コンストラクタ:f b()と表示されていることがわかります。
コンストラクタはプロトタイプに含まれるポインタであり、関数によってインスタンス化されたオブジェクトでは、このポインタはこのオブジェクトをインスタンス化するコンストラクタを指しています。
そして、ビュー関数b()関数プロトタイププロトタイプは何です。




