ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptのプロトタイプを使用する場合と使用しない場合の違いをコード例で詳しく解説

JavaScriptのプロトタイプを使用する場合と使用しない場合の違いをコード例で詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-27 13:34:191292ブラウズ

プロトタイプを使用しないメソッドはクラスの静的メソッドと同等ですが、逆にプロトタイプを使用するメソッドはクラスのインスタンスメソッドと同等です。 new が許可されるまで使用できません

function ListCommon2(first,second,third) 
{ 
this.First=function () 
{ 
alert("first do"+first); 
} 
} 
ListCommon2.do1=function(first) 
{ 
// this.First(); 
alert("first do"+first); 
} 
ListCommon2.prototype.do2=function(first) 
{ 
// this.First(); 
alert("first do"+first); 
}

の違いは何ですか。 2つの方法?プロトタイプを使用するかどうか?

テストコード:

var t1=new ListCommon2("烧水1","泡茶1","喝1"); 
// t1.do1();//调用出错 
ListCommon2.do1("烧水1"); 
var t2=new ListCommon2("烧水2","泡茶2","喝2"); 
t2.do2("烧水2");// 
// ListCommon2.do2("烧水1");//调用出错


テストの結果、プロトタイプのないメソッドはクラスの静的メソッドと同等であることが判明したので、 ListCommon2.do1("沸騰したお湯 1"); のように呼び出すことができます。このように呼び出した場合、エラーが発生します、 t1 .do1();

逆に、prototype を使用するメソッドは、ListCommon2.do2 以降でのみ使用できるクラスのインスタンス メソッドに相当します。 ("湯を沸かす1"); これはエラーになります

結論、prototypeで定義したメソッドを使う クラスのインスタンスメソッドに相当し、new以降に呼び出せる関数の制限。関数もクラスのインスタンスメソッドの制限と同様であり、プロトタイプ定義を使用しないメソッドの使用はクラスの静的メソッドと同等であり、新規の制限は必要ありません。関数内で呼び出せる関数は、クラスの静的メソッドの制限と同様です

たとえば、 this.First();
は呼び出すことができません

以上がJavaScriptのプロトタイプを使用する場合と使用しない場合の違いをコード例で詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。