ホームページ  >  記事  >  ウェブフロントエンド  >  Javascriptオブジェクトのprototype_javascriptスキルについて

Javascriptオブジェクトのprototype_javascriptスキルについて

WBOY
WBOYオリジナル
2016-05-16 16:49:021005ブラウズ

Javascript のすべてのオブジェクトにはプロトタイプがあります。試してみましょう:

コードをコピーします コードは次のとおりです:

var Richard = new Object( );
alert(typeof(Richard.prototype));

結果は憂鬱で、ブラウザが未定義でポップアップします...

何が起こっているのでしょうか?

別の例を見てください:
コードをコピーします コードは次のとおりです:

function Richard(){}
alert(typeof(Richard.prototype));

上記の例は、関数オブジェクトのみがプロトタイプを持ち、一般的な Object オブジェクトはプロトタイプを持たないことを示しているようです。プロトタイプはありますか?

別の文を実行するとわかります:
コードをコピーします コードは次のとおりです:

var Richard = new Object();
alert(Richard.__proto__);

理解できましたか?

実際、私たちは皆誤解しています。つまり、JavaScript オブジェクトのプロトタイプ チェーンを形成するプロトタイプは、prototype という名前のプロパティであり、アクセス可能であるということです。実際、JavaScript のプロトタイプとプロトタイプという名前のプロパティは、最初はまったく関係がありません。

一般オブジェクトの場合、__proto__ などの属性を介してオブジェクト オブジェクトから継承されたプロトタイプにのみアクセスできます。

関数オブジェクトの場合、作成された時点で関数のプロトタイプになります。オブジェクトはプロトタイプ属性に割り当てられます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。