悪くないの1篇はjavascript-prototypeに関して継承します。


1.基本的な使い方 クラスAの一例をクラスBに割り当てて、クラスBはクラスAのすべての属性を継承しました。コードの入力:function Class A(){this.a='a';function Class B(){this.b='b';クラスB.prototype=newクラスA()var objB=newクラスB();for(var p in objB)document.write(p+「」)[Ctrl+A全選注:]2.原型継承理論の観点から、  jsの原型継承は引用原型であり、複製原型ではないので、原型を修正することによって、すべてのBのインスタンスが変化します。コードは以下の通りです。function Class A(){this.a='a';function Class B(){this.b='b';クラスB.prototype=newクラスA()var objB=newクラスB();alert(objB.a)Class B.prototype.a='changed!!'alert(objB.a)[Ctrl+A全選注:]3.しかし サブオブジェクトの書き込み操作は、サブクラスのオブジェクトのメンバーにのみアクセスします。それらの間は互いに影響しません。したがって、書き込みはサブクラスです。 読むのが原型です。script>function Class A(){this.a='a';function Class B(){this.b='b';クラスB.prototype=newクラスA()var objB 1=newクラスB()var objB 2=newクラスB()objB 1.a='!!';alert(objB 1.a)alert(objB 2.a)[Ctrl+A全選注:]4.各サブオブジェクトは同じ原型の引用を持っているので、サブオブジェクトの原型メンバーは実際に同じです。script>function Class A(){this.a=function(){alert];function Class B(){this.b=function(){alert];クラスB.prototype=newクラスA()var objB 1=newクラスB()var objB 2=newクラスB()alert(objB 1.a=objB 2.a)alert(objB 1.b=objB 2.b);script>[Ctrl+A全選注:]5.サブクラス構成時 プロトタイプのコンストラクタは<script>function Class A(){alert(“a”)を実行されません。this.a=function(){alert()}function Class B(){alert("b")this.b=function(){alert()}クラスB.prototype=newクラスA()var objB 1=newクラスB()var objB 2=newクラスB()[Ctrl+A全選注:]6.次は致命的であり、サブオブジェクトでプロトタイプのメンバーオブジェクトにアクセスする:Fnction Class A(){this.a=>。function Class B(){this.b=function(){alert];クラスB.prototype=newクラスA()var objB 1=newクラスB()var objB 2=newクラスB()ObjB 1.a.push(1,2,3)alert(objB 2.a)//全てのbの例のaメンバーは全部変わりました!![Ctrl+A全選注:]7.だから プロトタイプ継承中 プロトタイプの中にメンバーがいてはいけません。 すべてのメンバーは必ず値タイプのデータ(stringでもいいです。)をprototypeで継承して実行効率が高く、メモリを無駄にしない、親タイプの動的な買い付け方法の後、サブクラスにすぐに見えるなどのメリットがあります。8.prototype継承は、サブタイプの原型オブジェクトを親タイプの一例に設定することによって継承されます。9.prototype継承には、4つの比較的明らかな欠点があります。欠点の一つは、親の構造関数はJAVAのように、サブクラスの実装時に実行されるのではなく、継承設定時に実行されるもので、一回だけ実行されます。これはしばしば私たちが希望するものではなく、特に父類の構造関数にはいくつかの特殊な操作がある場合がある。短所二:親の構造関数は、サブクラスの実装時に実行されないため、親の構造関数で設定されたメンバー変数は、サブクラスに入ると、すべてのインスタンスオブジェクトが公有する共通変数になります。JavaScriptでは「取得」属性の値のみを継承しているため、属性の値はString、Number、Booleanといったデータ自体が修正できないタイプの場合は影響がありません。しかし、ArayとObjectのタイプは問題があります。短所3:父の構造関数がパラメータを必要とするなら、私達はしょうがないです。短所四:サブクラスの元の原型オブジェクトが入れ替わり、サブクラス自体のコントローラ属性がなくなります。クラスの例では、そのconstructorの属性を取ると、取得したのは父から継承されたconstructorの属性であり、それによってconstrutorの値は親であって、サブクラスではない。10.prototypeの欠点について、例えばFunctionオブジェクトと書く方法を改造すると便利です。Function.prototype.Extens = 機能 (parent Class){  var Bs。 = new Function()  Bs.prototype = parent Class.prototype;  this.prototype = new Bs()  this.prototype.Super = parent Class;  this.prototype.com nstructor = this;みなさんにお願いします js。 達人はもっと良い方法を紹介してくれます。第3、6つのfunction Class A(){this.a=[]this.aa=100;]function Class B(){this.b=function(){return'classibb}クラスB.prototype=newクラスA()var objB 1=newクラスB()var objB 2=newクラスB()ObjB 1.a.push(1,2,3)objB 1.aa=10100 alert(objB 2.a)alert(objB 2.aa)script>[Ctrl+A全選注:]継承に対して、Aray.prototype 継承できない Class A、Class B<script>function Class A(){this.a=[]this.aa=100;function Class B(){this.b=function(){return'classibb}クラスB.prototype=newクラスA()Aray.prototype=newクラスB()var_array=new Aray()alert(u)array.b()[Ctrl+A全選注:]パラメータ付き相続問題
function Class B(){this.b=function(){return"classibb];function Class C(R){el=document.getElement ById(R)return el}Class B.prototype=new Class C()var st=new Class B()alert(st(「a」).inneneneneneneneneners HTML)[Ctrl+Aフル注:4591675]