js三種引継ぎ
1515 ワード
皆さん、こんにちは、js継承はjsの中で重要な部分です.この文章はjsの中の継承を紹介します.
常用の3つの継承構造関数継承 call&appy継承 prototype継承 js継承にはバリエーションが多く、この3つのタイプがよく使われています.
継承する前に、newの実例化の過程の中で、メモリの中の3つの段階を言います.
new実装、メモリ中の3段階
メモリの三つの段階を理解すれば、引き継ぎがよく分かります.
実質的には、動作
js継承の簡単なまとめ
プロトタイプチェーンは前の文章で述べましたが、ここでは詳しく説明しません.プロトタイプのチェーンはこれを見ます
更にまとめて、js継承の核心、
つまり、thisの指す変化は、子類のthisを広げ、親類のthisを含ませたものです.
引き継ぎのまとめ
2つの点については、
基本的な理論も言いました.その後、いくつかの
常用の3つの継承
継承する前に、newの実例化の過程の中で、メモリの中の3つの段階を言います.
new実装、メモリ中の3段階
//
function Foo(){}
var _f = new Foo();
//
// 1)
var _f = {};
// 2) __proto__
_f.__proto__ = Foo.prototype;
// 3) this
Foo.call(_f);
これはメモリに実装されている3つの段階であり、第1ステップのオブジェクト作成に加えて、オブジェクトの実装は、本質的にはまだ動作prototype
およびthis
であることが分かる.メモリの三つの段階を理解すれば、引き継ぎがよく分かります.
実質的には、動作
prototype
およびthis
も継承されている.js継承の簡単なまとめ
function Axx( ){ this.a = 1; }
Axx.prototype.foo = function (){ };
// 1、 ( prototype , )
Bxx.prototype = new Axx();
// 2、 -
function Children() {
this.obj = ParentFn; // ParentFn ( , )
this.obj(); // ParentFn this
}
// 3、call apply
function Bxx(){
Axx.call(this);
}
new Bxx(); //
上は簡単に継承できます.簡単ですか?プロトタイプチェーンは前の文章で述べましたが、ここでは詳しく説明しません.プロトタイプのチェーンはこれを見ます
更にまとめて、js継承の核心、
つまり、thisの指す変化は、子類のthisを広げ、親類のthisを含ませたものです.
引き継ぎのまとめ
2つの点については、
prototype
のプロトタイプ上の共有方法とthis
上のプライベート方法を継承することが分かりました.基本的な理論も言いました.その後、いくつかの
prototype
と継承の実用的な応用を見ました.継承の簡単な原理はここまでです.