JavaScript を学ぶ上で最も難しいことは何ですか?
オブジェクトが一番難しいと思います。 Javascript のオブジェクト モデルは非常に独特で他の言語とは異なるため、初心者が習得するのは簡単ではありません。
以下は私の学習メモです。この部分の学習に役立つことを願っています。主に
次の 2 冊の本を参照しました:
《オブジェクト指向JavaScript》(オブジェクト指向JavaScript)
《JavaScript 上級プログラミング (第 2 版)》(Web 開発者のためのプロフェッショナル JavaScript 第 2 版)
これらはすべて優れた Javascript の本なので、一読をお勧めします。
ノートは 3 つの部分に分かれています。今日の第 1 部は「カプセル化」について説明し、 第 2 部 と 第 3 部 では「継承」について説明します。
============================
JavaScript オブジェクト指向プログラミング (1): カプセル化
著者: Ruan Yifeng
JavaScript はオブジェクトベースの言語であり、遭遇するほとんどすべてがオブジェクトです。ただし、構文にクラスがないため、真のオブジェクト指向プログラミング (OOP) 言語ではありません。
それでは、「プロパティ」と「メソッド」をオブジェクトにカプセル化したい場合、またはプロトタイプ オブジェクトからインスタンス オブジェクトを生成したい場合は、どうすればよいでしょうか?
1. オブジェクトの元のモードを生成します
猫を「名前」と「色」の 2 つの属性を持つオブジェクトとみなしたとします。
var Cat = {
name: '',
color : ''
}
ここで、このプロトタイプ オブジェクトに基づいて 2 つのインスタンス オブジェクトを生成する必要があります。
var cat1 = {}; // 作成します。空のオブジェクト
cat1.name = "大马"; // プロトタイプオブジェクトの属性に従って値を割り当てます
cat1.color = " yellow"
var cat2 = {}; 🎜> cat2.name = "Ermao";
cat2.color = "Black";
2. オリジナルモードの改善
コードの重複の問題を解決する関数を書くことができます。
return {
コードは次のとおりです。
var cat2 = Cat("Ermao","Black") );
コードは次のとおりです。
function Cat(name,color){
this.name=name;
this.color=color;
var cat2 = new Cat("二毛","black");
alert(cat1.name); // Big Cat
alert(cat1.color); / / Yellow
alert(cat2.constructor == Cat); //true
4. コンストラクター パターンの問題
見てください。不変属性「type」(タイプ) を Cat オブジェクトに追加し、メソッド Eat (マウスを食べる) を追加します。次に、プロトタイプ オブジェクト Cat は次のようになります:
コードをコピー
}
同じメソッドを使用してインスタンスを生成します:
コードをコピー
type 属性と Eat() メソッドをメモリ内で 1 回だけ生成し、その後はすべてのインスタンスがそのメモリ アドレスを指すようにすることはできますか?答えは「はい」です。
5. プロトタイプ モード
JavaScript では、各コンストラクターが別のオブジェクトを指すプロトタイプ属性を持つことを規定しています。このオブジェクトのすべてのプロパティとメソッドは、コンストラクターのインスタンスによって継承されます。
コードをコピー
コードは次のとおりです:
コードをコピー
6. プロトタイプモード検証メソッド
6.1 isPrototypeOf()
このメソッドは、特定のプロトタイプ オブジェクトとインスタンスの間の関係。
コードをコピー
コードは次のとおりです:
alert(Cat.prototype.isPrototypeOf(cat1)); //true
alert(Cat.prototype.isPrototypeOf(cat2)); //true
6.2 hasOwnProperty ()
各インスタンス オブジェクトには hasOwnProperty() メソッドがあり、特定のプロパティがローカル プロパティであるか、プロトタイプ オブジェクトから継承されたプロパティであるかを判断するために使用されます。
alert(cat1.hasOwnProperty("name") )); // true
alert(cat1.hasOwnProperty("type")); // false
6.3 演算子
がインスタンスに含まれているかどうかを判断するために使用できます。ローカルかどうかに関係なく、属性。
alert("name" in cat1); // true
alert("type" in cat1); // true
in 演算子は、オブジェクトのすべてのプロパティを調べるために使用することもできます。
for(var prop in cat1) {alert("cat1[" prop "]=" cat1[prop]); }
まだ終わっていません。このシリーズの第 2 部「 コンストラクター」を読み続けてください。継承 」と 3 番目の部分「非コンストラクター関数の継承 」。
(終了)

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

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

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

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

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

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









