ホームページ > ウェブフロントエンド > jsチュートリアル > jsプロトタイプチェーンとは

jsプロトタイプチェーンとは

little bottle
リリース: 2019-05-31 10:45:00
オリジナル
15968 人が閲覧しました

プロトタイプ チェーンはメカニズムです。つまり、プロトタイプ オブジェクトを含む JavaScript の各オブジェクトには、それを作成した関数オブジェクトのプロトタイプ オブジェクトを指す [[proto]] 属性が組み込まれています。 、プロトタイプ属性。

jsプロトタイプチェーンとは

#機能: プロトタイプ チェーンの存在は、主にオブジェクトの継承を実現するためにあります。

プロトタイプ チェーンに関するいくつかの概念:

1. 関数オブジェクト

JavaScript における関数オブジェクト。

2. プロトタイプ オブジェクト

関数オブジェクトを定義する場合、プロトタイプ オブジェクトと呼ばれる、プロトタイプと呼ばれる事前定義された属性が含まれます。

//函数对象
function F(){};
console.log(F.prototype)
ログイン後にコピー

jsプロトタイプチェーンとは

3、__proto__

JavaScript がオブジェクトを作成するとき、[[proto]] 組み込み属性が存在します。 . プロトタイプは、それを作成した関数オブジェクトを指すために使用されます。プロトタイプ オブジェクトには [[proto]] 属性もあります。したがって、継続的なポインティングでは、プロトタイプチェーンが形成されます。

たとえば、オブジェクト F のプロトタイプ オブジェクトを変更すると、上記の関係が明確にわかります。

//函数对象
function F(){};
F.prototype = {
    hello : function(){}
};
var f = new F();
console.log(f.__proto__)
ログイン後にコピー

jsプロトタイプチェーンとは

4 , new

new を使用してコンストラクターを呼び出す場合、

var o = {};
o.__proto__ = F.prototype;
F.call(o);
ログイン後にコピー

を実行するのと同じです。したがって、new はプロトタイプ チェーンの実装において重要な役割を果たします。

5. コンストラクター

プロトタイプ オブジェクト プロトタイプには、関数オブジェクトを参照するために使用される事前定義されたコンストラクター属性があります。これは循環参照です。

function F(){};
F.prototype.constructor === F;
ログイン後にコピー

実際のアプリケーションでは以下のような書き方がよく使われます

function F(){};
F.prototype = {
    constructor : F,
    doSomething : function(){}
}
ログイン後にコピー

ここでコンストラクタを追加する理由は、プロトタイプオブジェクトが書き換えられてコンストラクタ属性がなくなってしまうためです。手動で入力してください。

6. プロトタイプチェーンのメモリ構造

function F(){
    this.name = 'zhang';
};
var f1 = new F();
var f2 = new F();
ログイン後にコピー

以上がjsプロトタイプチェーンとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
ノード Js + JS 入力 = document.getElementById
から 1970-01-01 08:00:00
0
0
0
js addClassが機能しない
から 1970-01-01 08:00:00
0
0
0
javascript - jsコードをPythonに変換
から 1970-01-01 08:00:00
0
0
0
jsファイルのコードが見つかりません
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート