📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 251行目: | 251行目: | ||
! class構文 !! プロトタイプベースの等価コード !! 説明 | ! class構文 !! プロトタイプベースの等価コード !! 説明 | ||
|- | |- | ||
| | | class Animal {} || function Animal() {} || クラス宣言はコンストラクタ関数に対応する。 | ||
|- | |- | ||
| | | constructor(name) { this.name = name; } || function Animal(name) { this.name = name; } || コンストラクタ本体はそのまま関数本体になる。 | ||
|- | |- | ||
| | | speak() { ... } || Animal.prototype.speak = function() { ... }; || インスタンスメソッドは <u>prototype</u> に追加される。 | ||
|- | |- | ||
| | | static create() { ... } || Animal.create = function() { ... }; || 静的メソッドはコンストラクタ関数自体のプロパティになる。 | ||
|- | |- | ||
| | | class Dog extends Animal || Object.setPrototypeOf(Dog.prototype, Animal.prototype); || <u>extends</u> はプロトタイプチェーンを設定する。 | ||
|- | |- | ||
| | | super(name) || Animal.call(this, name); || <u>super()</u> は親コンストラクタを <u>this</u> に対して呼び出す。 | ||
|- | |- | ||
| | | super.speak() || Animal.prototype.speak.call(this); || <u>super.method()</u> は親の <u>prototype</u> のメソッドを呼び出す。 | ||
|} | |} | ||
</center> | </center> | ||