JavaScript

newとインスタンスの関係

投稿日:2019年8月17日 更新日:

JavaScriptをUdemyや本で学んでいると、「new」というワードがちらほら、、あまり出てこないですが「インスタンス(化)」というワードもちょいちょい見ます。

あまり気にしてはいなかったです。と言いますか今の自分のレベルでは知る必要が無いぐらいあまり使わなかったのです。

ただ少し気になりだしたので、調べて自分なりに解釈した流れを書きます。

newとインスタンスの関係

スーパーざっくり説明…
new:インスタンスを生成する時に使う。

・・・?
どうやらまず「インスタンス」とは何かを知る必要があるようです。

インスタンス

オブジェクト指向のプログラムは、あらかじめ用意されているオブジェクトを直に扱うことは無いようです。
例えば、「A」「B」という2つのプログラムがあったとします。
両方のプログラムが「同じオブジェクト」に対してデータを読み書きしてしまうとお互いに干渉してしまってエラーが発生してしまいます。

sample
(図1)プログラムAとBが干渉…

そこで、上手く両プログラムを作動させるためには、「元のオブジェクト」のコピーをプログラムA/B用にそれぞれ用意すればいいのです。

sample02
(図2)コピー(インスタンス化)してプログラムABを問題なく動作させる

こうすることによって、プログラムA/Bに対する「オブジェクトのコピー」があるので、それぞれのプログラムを問題なく動かすことができるようになるのです。

さて、JavaScriptの参考書のようにまとめてみると、、

「オブジェクトをコピーをする」という行為をインスタンス化と呼び、「コピーされたオブジェクト」をインスタンスと呼ぶようです。
そして、このインスタンスを作成する機能があるのが「new演算子」です。

Dateオブジェクトで例えてみる

date_object
(図3)インスタンス化することによって色んなメソッドを使う

Dateオブジェクトをnew をつけてインスタンス化し(new Date())、Dateオブジェクトのインスタンスとして、いろんなメソッドを続けることが可能となりました。

まとめ

・「インスタンス」とはオブジェクトがコピーされたもの
・「インスタンス化」とはオブジェクトをコピーすること
・「new」を使うことでオブジェクトをインスタンス化させることができる
・インスタンスを作る理由は、複数のプログラムを干渉しないようにする為

いかがでしょう?
私はこれでインスタンス(化)、newを理解しました。

少しでも参考になれば幸いです。
ではまた!

-JavaScript

執筆者:

関連記事

JS

【JavaScript】if文の基本から応用までを網羅。初心者・ド忘れした方にオススメ

こんにちは。今回はJavaScript(以下JS)の基本公文の一つであるif文について書いていきます。時間、計算、大小関係などの様々な条件で処理を変えたり、コンテンツの表示を変えたりと何かとよく使うi …

JS

returnについて

今回はJavaScriptでよく出てくるreturnについて書きます。

JS

【JS】連続するsetTimeoutをスッキリさせる【コピペで解消】

今回はJavaScript(以下JS)で連続でsetTimeout()を実装する時によく陥る「コールバックヘル」を解消する方法を記載します。

JS

【JS】8分で理解 deferとasyncを図で説明してみた【図解】

こんにちは。今回はJavaScript(以下JS)の「defer属性」と「async属性」について解説します。これらの属性を使うことでページの表示速度をあげることが出来るのでぜひ理解しましょう。早速、 …

JS

【JS】イベントリスナー’ DOMContentLoaded ‘と’ load ‘の違いを解説

こんにちは。今回はJavaScript(以下JS)のロード系?のイベントリスナーについて書きたいと思います。 ・DOMContentLoaded・load これらのイベントリスナーはJSを学習しはじめ …

me

Taka

学生時代にアメリカ(サンフランシスコ)とカナダ(トロント)にそれぞれ約1年間づつ住んでいました。特にサンフランシスコではシリコンバレーに訪れた際にITの素晴らしさに触れ感動しました。IT業界で働くと決心した瞬間でもありました。現在はWeb制作に携わる会社員です。