js_javascript スキルでオブジェクトを作成するいくつかの方法の例
JavaScript では、文字列、配列、数値、関数など、すべてがオブジェクトです。
JS にはクラスの概念はありませんが、JS の文法機能を使用してクラスの概念でオブジェクトを作成できます。
元のメソッド
< ;script type ="text/javascript">
var obj = new Object();
obj.name = "Koji" //オブジェクトに属性を追加します
obj.age = 21;
obj.showName = function(){ //オブジェクトにメソッドを追加します
alert(this.name)
}
obj.showAge = function(){
alert(this) .age);
obj.showName(); //コウジ
🎜>
上記のメソッドは new キーワードによってオブジェクトを生成し、動的言語としての JS の特性に応じてプロパティとメソッドを追加して、
オブジェクトを構築します。これはメソッドを呼び出すオブジェクトです。
ファクトリ メソッド
コードをコピー
obj.name = "Koji" ;
obj.age = 21;
obj.showName = function(){
alert(this.name);
}
obj.showAge = function(){
alert (this.age);
return object
}
var obj1 = createObj();
obj1.showName(); //Koji
obj2.showAge(); //21
このアプローチは改善しますコード 再利用率を向上させるために、ファクトリ メソッドを変更してパラメータ値を渡すこともできます。
コードをコピー
上記の方法はコードの再利用率を向上させますが、それは異なります。オブジェクト指向クラスの概念には大きな欠陥があります。 face
オブジェクトは、オブジェクトのプロパティがプライベートである一方、オブジェクトのメソッドは共有されることを強調しています。上記のファクトリ メソッドがオブジェクトを作成するときは、
オブジェクトごとに独自のプライベート メソッドを作成する必要があります。同時に、各オブジェクトに対して論理的に同一のメソッドを作成するとメモリが無駄に消費されます。改善点は次のとおりです
コードをコピー
コードは次のとおりです:
コンストラクターメソッドはファクトリメソッドと同じで、オブジェクトごとに専用の関数オブジェクトを作成します。もちろん、これらの関数
オブジェクトはコンストラクターの外部で定義することもできるため、オブジェクトとメソッドは互いに独立しています。
コードをコピー
person.prototype.name = "Koji"; // 属性
を追加します。 prototype.showName = function(){ //メソッドを追加します
alert(this.name);
}
person.prototype.showAge = function(){
alert(this.age) );
}
var obj1 = new Person() // 人物オブジェクトを生成します
var obj1.showName(); //コウジ
obj1.showAge(); //22
obj2.showAge(); //22
🎜>
Person オブジェクトが生成されると、プロトタイプの属性が新しいオブジェクトに割り当てられます。次に、プロパティとメソッドが共有されます。
このメソッドの最初の問題は、コンストラクターがパラメーターを渡すことができず、新しく生成された各オブジェクトにはデフォルト値があることです。次に、メソッドの共有には問題ありませんが、属性が状態を変更できるオブジェクトである場合、属性の共有には問題があります。
コードをコピー
コードは次のとおりです:
上記のコードが obj1 から obj1 までの属性配列に要素を追加すると、 obj2 の配列属性要素も
の影響を受けます。その理由は、obj1 オブジェクトと obj2 オブジェクトの配列属性が同じ Array オブジェクトを参照しているためです。次に、この Array
オブジェクトを変更します。 1 つは Array オブジェクトを参照します。プロパティは当然影響を受けます。
コンストラクターとプロトタイプの混合アプローチ
コンストラクターを使用してオブジェクトのプロパティを定義し、プロトタイプを使用してオブジェクトのメソッドを定義します。これにより、メソッドは共有されながら、プロパティ
プライベートを実現できます。
コードをコピー
コードは次のとおりです:
属性がプライベートになった後は、それぞれの属性を変更しても他のオブジェクトには影響しません。同時に、メソッドはさまざまなオブジェクトによって共有されます。意味的には、
これはオブジェクト指向プログラミングの要件を満たしています。
動的プロトタイプ メソッド

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull
