プロトタイプ チェーンは、js 継承を実装するための主な方法です。その原理は、プロトタイプを使用して、ある参照型のプロパティとメソッドを継承させることです。プロトタイプ オブジェクトをインスタンスと等しくすると、その時点でのプロトタイプ オブジェクトには別のプロトタイプへのポインターが含まれます。これがプロトタイプ チェーンの基本概念です。
以下は簡単な例です
var Parent = function(){ this.name = 'parent' ; } ; Parent.prototype.getName = function(){ return this.name ; } ; Parent.prototype.obj = {a : 1} ; var Child = function(){ this.name = 'child' ; } ; Child.prototype = new Parent() ; var parent = new Parent() ; var child = new Child() ; console.log(parent.getName()) ; //parent console.log(child.getName()) ; //child
上記のコードは、親と子の 2 つの型を定義しています。各型にはプロパティとメソッドがあります。主な違いは、親のインスタンスを作成し、このインスタンスを child.prototype に割り当てることで継承が行われることです。彼は新しい例です。親クラスのオブジェクトをサブクラス コンストラクターのプロトタイプに直接割り当てることで、サブクラスのオブジェクトが親クラスのプロトタイプおよび親クラス コンストラクターのプロパティにアクセスできるようになります。
instanceof 演算子を使用して判断できます。この演算子を使用して、プロトタイプ チェーンに表示されるインスタンスとコンストラクターをテストすると、true が返されます
JavaScript コンストラクターに関して混乱しやすい領域の 1 つは、プロトタイプのコンストラクター属性です。 JavaScript では、各関数にはデフォルトのプロトタイプ オブジェクト属性プロトタイプがあり、これにはデフォルトで 2 つのメンバー属性 (constructor と
proto) が含まれています。プロトタイプの詳細については、この記事では説明しません。ここで注目するのはコンストラクター属性です。
function CO(){ this.p = “I’m in constructed object”; this.alertP = function(){ alert(this.p); } } var o2 = new CO();
function superType(){ this.colors = ["red","blue","green"]; } function subtype(){ superType.call(this); } var instance1 = new subtype(); instance1.colors.push("black"); alert(instance1.colors);//"red,blue,green,black" var instance2 = new subtype(); alert(instance2.colors);//"red,blue,green"
function superType(name){ this.name = name; } function subtype(){ superType.call(this,"Marry"); this.age = 29; } var instance = new subtype(); alert(instance.name);//"Marry" alert(instance2.age);//"29"
JS 復号化、オンライン JS 復号化と復号化
以上がJS の継承を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。