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

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

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

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
