JavaScriptでクラスをわかりやすく説明する

JavaScriptのクラスは、多くの人にとってハードルです。JSのクラスのさまざまな動作に関する多くの苦情。この投稿では、JSでクラスがどのように機能するか、およびclassキーワードを使用せずにクラスのような動作を実現する方法について説明します。

UnsplashのScottUmstattdによる写真

オブジェクト指向のバックグラウンドを持つ人々は、JSのクラスと混同されることがよくあります。多くの場合、人々はいくつかの仮定を持って来て、物事を互いに関連付けようとします。これは、私たちの理解を迅速に追跡するための良いことです。しかし、JavaまたはC ++のクラスの動作をJSのクラスに関連付けようとすると、単純化するのではなく、混乱を招きます。JavaScriptクラス(この記事だけでなく)を理解している間は、自分自身を空白にすることをお勧めします。

JavaScriptは関数型プログラミング言語であることを理解する必要があります。
関数型プログラミング言語のパラダイムを理解するために、この記事を読んでいただきたいと思います。(待ちます)

JavaScriptのすべてが関数です。

JavaScriptのすべてが関数です。

ES6ではclassキーワードが導入され、その前にコンストラクター関数とファクトリ関数がJavaScriptでクラスのような動作を実装するために使用されていました。
それぞれの次の例に注意してください。

コンストラクター関数

コンストラクター関数は、慣例により、後で常に大文字で始まり、newキーワードを使用してコンストラクター関数のインスタンスを作成できます。
これらのプロパティにより、コンストラクター関数を使用してJavaScriptでクラスのような動作を実現できます。

コンストラクター関数の名前は大文字で始める必要があります。
ゲッター、セッターの例

上記のPerson関数は、Javaのクラスとほぼ同様の機能を提供します。

すべての関数には、プロトタイプと呼ばれる特別なプロパティがあります。このプロパティはオブジェクトであり、プロトタイプオブジェクトと呼ばれることがよくあります。デフォルトでは、このプロトタイプオブジェクトには、関数を指すコンストラクターと呼ばれるプロパティがあります。

プロトタイプを使用して、ClassPersonに新しいプロパティを追加できます。

プロトタイプを使用して追加されたプロパティは、コンストラクター関数のすべてのインスタンスで自動的に使用可能になります。

ただし、1つの問題
があります。それは、参照型のプロパティがインスタンス間で共有されることです。

これで、コンストラクター関数とプロトタイプの使用法を理解できました。Classキーワードとは何かを理解しましょう。

JavaScriptのクラス

これはコンストラクター関数やプロトタイプとは違うと思うかもしれませんが、そうではありません。

クラスは、コンストラクター関数に対する単なる構文糖衣です。
信じない?そう思ったので、以下の例を見てみましょう。

これがJavaScriptでクラスを書く方法です。

そして、これはコードを純粋なJavaScriptにトランスパイルした後です(バベルを聞いた?良い)

まあ、これはトランスパイルされたコードの完全版ではありません。簡単にするために、さらにいくつかの行をストライプ化しました。

つまり、JavaScriptのClassキーワードは、単純化のために単なる構文糖衣であり、内部ではコンストラクター関数とプロトタイプの能力を使用しています。

まあ、これは氷山の一角にすぎません。本当の混乱はクラスの実装ではなく、人々はこのキーワードやこれの字句スコープなどについて混乱するからです。

より深く理解するには、次のリンクを検討してください。
これ、これ、これ。

この記事を楽しんだら、拍手と共有を高く評価します。

Twitterでフォローしてください@ suhas0101

提案された投稿

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

はじめに 脳卒中は、いつでも誰でも起こり得る医療上の緊急事態です。これは、脳の一部への血流が中断され、脳機能が突然失われることで発生します。

私が最もよく使用するコーディング リソース

私が最もよく使用するコーディング リソース

今週、毎日のメールリストのメンバーからメールを受け取りました。彼らは次のことを知りたかったのです。毎日、毎週、毎月どのリソースにアクセスしていますか? 素晴らしい質問です!私のワークフローと使用している主なリソースについての洞察を共有したいと思います。

関連記事

Goodreads の読書チャレンジは有毒です

Goodreads の読書チャレンジは有毒です

地元の書店ともう一冊の本を求めて交渉していると、手のかゆみが広がった。この本は、最近購入した残りの本と同様に、私の「読みたい本」(TBR)の山の中でその王座を見つけることになります。それでも、買ってしまいました。

緩やかな浸食: 人々がキャリアを無駄に浪費する方法を明らかにする

緩やかな浸食: 人々がキャリアを無駄に浪費する方法を明らかにする

今日のペースが速く競争の激しい世界では、個人の成長、経済的安定、そして人生全体の満足度において、個人のキャリアが重要な役割を果たしています。しかし、多くの人は停滞と不満の絶え間ないサイクルに陥っており、職業生活が徐々に消耗していきます。

代名詞は超怖い

頻繁に起こることだが、突然、私は衝撃を受ける 再びミッドウェイだ <いいえ、太平洋にあるものではなく、カーニバルにあるものです> どの見出しも大音量で…..

ネットワークテレビツイッター

ネットワークテレビツイッター

古いものは再び新しくなり、以前はキラキラ輝いていたものがくすんで見えます。私は、JNCO ジーンズが 1990 年代後半の他のファッションとともにダウンタウンのクールな子供たちの間で復活したことについて話しているのではありません。