検索
ホームページウェブフロントエンドjsチュートリアルJavaScriptのオブジェクト定義方法がシンプルで学びやすい_jsオブジェクト指向

ファクトリ パターン:
初級開発者は次のようなオブジェクトを定義できます:
var obj = new Object();
obj.showName=function (){alert( this .name);}
ここでの問題は、obj オブジェクトを複数の場所で使用したい場合、プログラム内で同様のコードを何度も記述する必要がある可能性があるため、ファクトリ メソッド
function createObj()
{
var obj = new Object();
obj.name="hero";
obj.showName=function (){alert(this.name);}
return obj;
}
var obj1 = createObj();
var obj2 = createObj();
および別のメソッド コンストラクター メソッド
function obj (name)
{
this.name =name;
this.showName= function (){alert(this.name);}
}
新しいコードの重複を避けるために、さらにコードをカプセル化することもできます。改善点は、デフォルトの固定値を obj に割り当てる代わりに、createObj にいくつかのパラメータを渡すことです。
function createObj(name)
{
var obj = new Object();
obj.showName=function (){alert(this.name);}
return obj;
}
var obj1 = createObj("hero"); j2=createObj("dby");
しかし、createObj 関数を呼び出すたびに、新しい関数 showName が作成されるという問題があります。これは、各オブジェクトが独自のバージョンの showName を持っていることを意味します。この問題を回避するには、
function showName()
{
alert(this.name)
}
function createObj(name)
{
var obj = new Object();
obj.showName=showName;
return obj;
}
これで関数を繰り返し作成できます。
プロトタイプ メソッド:
主にオブジェクトのプロトタイプ属性を使用します。
obj.prototype.name="hero"; obj.prototype.showName=function()
{
alert(this.name);
}
先ほどのファクトリーよりも完璧に見えますが、この関数には問題があります。コンストラクターがなく、属性はプロトタイプによって指定されます。これは、実際のアプリケーションでは、特にセキュリティ上のリスクがある場合には非常に困難です。たとえば、次のような段落を追加します。
obj.prototype.nameArray("hero","dby");
Then
obj1 = new obj(); >obj2 = new obj();
obj1.nameArray.push("lxw" );
2 つのオブジェクトの nameArray が同じ参照を指しているため、この属性は obj2 の nameArray にも表示されます。
したがって、このメソッドは理想的ではありません。
改善の必要があります
コンストラクターを結合し、コンストラクターでプロパティを定義し、プロトタイプ定義メソッドを使用します。
たとえば、
fuction obj(name)
{
this.name = name
this.nameArray = new Array(" hero","dby");
}
obj.prototype.showName = function(){alert(this.name) )}
すべての非関数プロパティはコンストラクターで作成され、関数プロパティはプロトタイプ モードで作成を使用して作成されます。obj1 の nameArray 値を変更しても、obj2 オブジェクトの nameArray 値には影響せず、showName は 1 つだけです
基本的には完璧ですが、興味があれば、自分で変更して遊んでみてください。
ここにシングルトンを追加して遊んでいます。 :
関数 obj (名前)
{
this.name = 名前;
this.nameArray=new Array("hero","dby");
if(typeof obj._initialized) =='未定義')
{
obj.prototype.showName=function(){alert(this.name);}
obj._initialized="true";
}
実際には、これはオブジェクトを構築するときに、属性が定義されているかどうかを最初に判断し、属性が定義されていない場合は、プロトタイプ メソッドを使用してオブジェクトの定義を続けるだけです。定義されている場合、関数は再度定義されません。
これでほぼ完璧になります。
これは私の個人的な理解です。不完全な点がある場合は、QQ に連絡して修正してください。
これは完全な例です:
function Rectangle(name,color,width,heigth){
this.name=name;
this.width= width; ;
this.heigth=heigth;
}
Rectangle.prototype.area=function(){
return this.width*this.heigth
}
Rectangle.prototype. =function(){
document.write(this.name " " this.color " " this.width " " this.heigth "
");
document.write(this.area() ); ;
}
var obj1= new Rectangle("Rectangle","re​​d",15,20);

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
舞台裏:JavaScriptをパワーする言語は何ですか?舞台裏:JavaScriptをパワーする言語は何ですか?Apr 28, 2025 am 12:01 AM

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの未来:傾向と予測PythonとJavaScriptの未来:傾向と予測Apr 27, 2025 am 12:21 AM

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

Python vs. JavaScript:開発環境とツールPython vs. JavaScript:開発環境とツールApr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

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

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール