質問: 学習し始めて2週間たち、 JavaScriptに出てくる言葉の概念を 一度整理したいのですが、 JavaScriptの[コンストラクタ]の概念が ちゃんと理解できません。 普通の関数と、コンストラクタ関数の違いはなんなのでしょうか。調べると、newするときに初期化するものをコンストラクタというと書いてありましたが、ピンときませんでした。 平易な言葉で説明していただけませんか。 よろしくおねがいいたします。
回答: オブジェクト指向言語には大体ある概念ですので下記のような記事をまず読んでみましょう。 * コンストラクタ (constructor)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 冒頭から引用 > > ・メソッド(関数)だよ > > ・クラスをnewしたときに実行されるよ > > ・オブジェクト指向なプログラミング言語で出てくるよ > > > 「クラスをnewしたときに自動で実行されるメソッド」というのが簡単な説明ですね。 下記の記事にあるサンプルコードが分かりやすいと思います。 * コンストラクタ|JavaScript入門 記事から引用 ``` function Person(n) { // Constructor this.name = n; return this; // opt. } var p1 = new Person('Hanako'); document.write(p1.name); ``` 自動で「Hanako」というnameを持ったPersonオブジェクトができあがるわけです。 ということで、newのときに別の引数を渡してあげると、いろんな人の情報を持つそれぞれのPersonオブジェクトができあがります。 ``` function Person(n) { // Constructor this.name = n; return this; // opt. } let PHanako = new Person('Hanako'); let PTaro = new Person('Taro'); let PAi = new Person('Ai'); let PKenji = new Person('Kenji'); console.log(PHanako.name); console.log(PTaro.name); console.log(PAi.name); console.log(PKenji.name); ```