Java、C#、VB を学習したことがある人ならクラスの概念を知っており、クラスには継承、カプセル化、ポリモーフィズムなどの機能があります。 JavaScript はオブジェクト指向言語ではなく、インタプリタ型言語です。
しかし、JavaScript を使用して継承とポリモーフィズムを実装することもできます。
JavaScript 実装クラスには多くのメソッドがあります。
方法 1: 構築方法。
コード
function coder(){
this.name = 'Xiao Wang';
this.job = 'プログラマー';
this.coding = function ()
{
alert('コードを書いています');
}
}
var coder=new coder();
alert(coder.name);
方法 2:ファクトリーメソッド。
コード
function createCoderFactory(){
var obj=new Object();
obj.name = 'Xiao Wang';
obj.coding = function (){
alert( 'コードを書く');
return obj;
alert(coder.name); ;
しかし、ファクトリ メソッドとコンストラクター メソッドの両方には、インスタンスが作成されるたびにクラスのすべての関数がインスタンス化されるという同じ欠点があります。
方法 3: プロトタイプチェーン。
コード
コードをコピー
alert('私は書いていますコード' );
};
var coder();
coder.coding();
プロトタイプチェーンの欠点は、1 つのインスタンスが変更されると、他のインスタンスもそれに応じて変更されることです。 テストは次のとおりです。
コードをコピー
コードは次のとおりです。
alert(coder1 .name); 本によると、「Lao Wang」と表示されるはずですが、ここでは「Xiao Wang」と表示されているため、本は間違っています。
方法 4: 混合方法。
上記の 3 つのタイプにはそれぞれ欠点があるため、それらを改善する必要があります。
コードをコピー
コードは次のとおりです。
方法 5: 動的オリジナル チェーン。
最初の 3 つの欠点を解決する別の方法があります。
コード
コードをコピー
コードは次のとおりです。
function coder(){
このメソッドはどうでしょうか? 初めて使用する場合、_init が初期化されていないため、次のコードが実行されてコーディング関数がインスタンス化されます。今後再び実行されることはないため、関数は 1 回だけインスタンス化されます。