JavaScriptでは、オブジェクトがあるがそのコンストラクターがわからない場合、どのようにしてそのプロトタイプオブジェクトを取得しますか?
ChromeまたはFirefoxブラウザでは、オブジェクトの__Proto__属性を使用してプロトタイプオブジェクトを取得できます。
コードコピーは次のとおりです。
<! - lang:js->
関数f(){};
var foo = new f();
アラート(foo .__ proto__ == f.prototype);
ただし、__Proto__属性はIE11までIEブラウザではサポートされていません。
では、__Proto__属性をサポートしていないブラウザでは、オブジェクトのプロトタイプオブジェクトをどのように取得できますか?コンストラクターを介して間接的に取得できます。
コードコピーは次のとおりです。
<! - lang:js->
関数f(){};
var foo = new f();
alert(foo.constructor.prototype == f.prototype);
コンストラクター属性はオブジェクトの属性ではなく、プロトタイプチェーンに沿ってプロトタイプオブジェクトから取得されます。このプロパティは、このプロトタイプオブジェクトに対応するコンストラクターを指しています。コンストラクターのプロトタイププロパティは、プロトタイプオブジェクトを指しているため、間接的に取得できます。
上記は、JavaScriptでプロトタイプオブジェクトを取得することです。気に入っていただければ幸いです。