ハッピーメモメモ

私的備忘録

【勉🌱】【JavaScript】コンストラクタ関数とは?

 

コンストラクタ関数(p80,176)

・new式を使用して新規オブジェクト(インスタンス)を作成する関数

【JavaScript】 コンストラクターとは?関数とは違うのか?

 

・クラスの中のコンストラクタとは違う

JavaScript におけるコンストラクタ関数とは、プロトタイプオブジェクト
を継承してオブジェクトインスタンスを生成するための独立した関数のこと

 

オブジェクト指向(p78)

・クラスベース

・プロトタイプベース

 

クラスベース

・クラスは実体を持たない抽象概念

・例)Java

 

プロトタイプベース

・プロトタイプは実体のあるオブジェクト

・そもそもオブジェクトの抽象としてのクラスが存在しない

・オブジェクトは直接、他のオブジェクトを継承する

・継承元になったオブジェクトのことを『プロトタイプ』と呼ぶ

・プロトタイプへ直にメソッドを追加したり削除したりできる上に、その変更がすでに生成済みのインスタンスにも即時反映される

・例)JavaScript

 

参照:りあクト!【1.言語・環境編】

 

オブジェクトをつくる「もと」なのか?

クラスだったり関数だったりするけど、実体があるものを、JavaScriptにはクラスがないから「コンストラクタ関数」と呼ぶのかも?

class XXX { … }   

function XXX( ) { … }

→ new XXX    

 

クラスからオブジェクトがつくれるのはいいんだけど、関数からオブジェクトが生まれてくるのが気持ち悪い・・・

 

抽象クラス、インターフェース

JavaScriptにはない!

TypeScriptには導入されている