プロトタイプ/構造関数/インスタンス/プロトタイプチェーン
2703 ワード
プロトタイプ/構造関数/インスタンス/プロトタイプチェーン
原型(prototype):一つの簡単な対象で、実現対象の属性継承に従います.相手のお父さんを簡単に理解することができます.FirefoxとChromeでは、JavaScriptの各オブジェクトには一つのプロト(標準)の属性が含まれており、その父親(当該オブジェクトのプロトタイプ)を指し、obj.protoにアクセスすることができる.構造関数:newによって一つのオブジェクトの関数を新規作成できます.例:構造関数とnewによって作成されたオブジェクトは、インスタンスです.例はプロトを通してプロトタイプを指し、コンストラクタを通してコンストラクタを指す.Objectを例にとって、私達がよく使うObjectは一つのコンストラクタです.だから私達はそれを通じて実例を構築することができます.実例
原型(prototype):一つの簡単な対象で、実現対象の属性継承に従います.相手のお父さんを簡単に理解することができます.FirefoxとChromeでは、JavaScriptの各オブジェクトには一つのプロト(標準)の属性が含まれており、その父親(当該オブジェクトのプロトタイプ)を指し、obj.protoにアクセスすることができる.構造関数:newによって一つのオブジェクトの関数を新規作成できます.例:構造関数とnewによって作成されたオブジェクトは、インスタンスです.例はプロトを通してプロトタイプを指し、コンストラクタを通してコンストラクタを指す.Objectを例にとって、私達がよく使うObjectは一つのコンストラクタです.だから私達はそれを通じて実例を構築することができます.実例
//const instance = new Object()
//
const instance = new Object()
この時、例はinstanceで、構造関数はObjectで、構造関数は一つのprototypeの属性を持って原型を指すことを知っています.//
const prototype = Object.prototype
例.proto==プロトタイプ.constructor==構造関数.prototype==プロトタイプ//
// ,
// :
const o = new Object()
o.constructor === Object --> true
o.__proto__ = null;
o.constructor === Object --> false
.constructor ===
もう一つのプロトタイプチェーン:プロトタイプチェーンはプロト属性があり、そのオブジェクトを作成する構造関数のプロトタイプを指しています.プロトはオブジェクトを連結してプロトタイプチェーンを構成しています.一つの使用で属性の継承と共有を実現する限定的なオブジェクトチェーン属性検索メカニズムです.オブジェクトの属性を検索する場合、インスタンスオブジェクトが自分の体にこの属性が存在しない場合、プロトタイプチェーンに沿って上のステージに検索し、見つけたら出力し、存在しない場合、プロトタイプチェーンに沿って上のステージに検索し続け、トップクラスのプロトタイプオブジェクトObject.prototypeに直結します.見つけられなかったらundefinedを出力します.属性修正メカニズム:インスタンスオブジェクト自体の属性のみが修正され、存在しない場合は、その属性が追加されます.プロトタイプの属性を変更する必要がある場合は、それを適用することができます.b.prototype.x=2.しかし、このようにすると、オブジェクトのインスタンスを引き継ぐすべての属性の発信元が変更される.