ホームページ ウェブフロントエンド jsチュートリアル js でオブジェクトを作成するいくつかの一般的な方法のまとめ (推奨)_js オブジェクト指向

js でオブジェクトを作成するいくつかの一般的な方法のまとめ (推奨)_js オブジェクト指向

May 16, 2016 pm 06:17 PM
オブジェクトの作成

最初のモード: ファクトリーモード

コードをコピー コードは次のとおりです:

var lev=function(){
return "スクリプト ホーム";
function Parent(){
var Child = new Object(); name="スクリプト";
Child.lev=lev;
var x = 親(); alert(x.name);
alert(x.lev());


手順:
1. 関数内でオブジェクトを定義し、オブジェクトのさまざまなプロパティを定義します。属性はメソッドにすることができます。メソッド
2 を繰り返し作成することを避けるために、属性がメソッドである属性を関数の外部で定義することをお勧めします。 オブジェクトを参照するときは、var の代わりに var x = Parent() を使用します。 x = new Parent(); 後者は多くの問題を引き起こす可能性があるため (前者も古典的なファクトリ メソッドとなり、後者はハイブリッド ファクトリ メソッドと呼ばれます)、このオブジェクトを使用するために新しいメソッドを使用することはお勧めできません。 🎜> 3. 関数内で、最後にオブジェクトが返されます
4. この方法でオブジェクトを作成することはお勧めできませんが、
2 番目のモード: コンストラクター メソッド
を理解する必要があります。




コードをコピーします
コードは次のとおりです:var x =new Parent();
alert(x.lev());
1. ファクトリメソッドと比較して、コンストラクターを使用します。関数的にオブジェクトを作成するには、関数内でオブジェクトを再作成する必要はありませんが、これを使用してオブジェクトを参照し、関数が明示的に返す必要はありません。
2. ファクトリ モードと同様に、属性の値をメソッドにすることはできますが、外部関数でメソッドを定義することをお勧めします。
3. 同様に、この方法でオブジェクトを作成することは推奨されません。

3 番目のモード: プロトタイプ モード





コードをコピー

コードは次のとおりです。次のように:


var lev=function(){
return "スクリプト ホーム" } ;
function Parent(){
}; 🎜>Parent.prototype.name="ブルース・リー"; Parent.prototype.lev=lev; >alert(x.name); alert(x.lev()); 関数内で属性を定義しないでください2。属性を定義するためのプロトタイプ属性
3. 同様に、この方法でオブジェクトを作成することは推奨されません

4 番目のモード: 混合構築関数、プロトタイプ メソッド (推奨)





コードをコピー


コードは次のとおりです:


function Parent (){
this.name="script ";
this.age=4;
};
Parent.prototype.lev=function(){
return this.name;
};; var x =new Parent();
alert(x.lev());



コードをコピーします


コードは次のとおりです。


function Parent(){
this.name=" Script"; 🎜>this.age=4;

if(typeof Parent._lev=="未定義"){

Parent.prototype.lev=function(){
return this.name ;
} 親._lev=true;
var x =new Parent(); 🎜>

コードをコピー


コードは次のとおりです:


if (typeof Parent._lev=="unknown"){

Parent._lev=true;}


これにより、オブジェクトのインスタンスを作成するときに、属性がメソッドは繰り返されません
3 を作成します。このモードを使用することをお勧めします
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

' this' JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles