[JavaScript]prototypeで継承する
JavaScriptのコンストラクタでprototypeで継承を使ってみます。
prototypeで継承を使ってみる
簡単なコード例として、Personを作ります。プロパティとしては、nameの値を持ちageCalのメソッドで年齢を計算します。
参考:[JavaScript]コンストラクタってなに?クラス?書き方もあわせて紹介
//Personを定義 function Person(name, yearOfBirth) { this.name = name; this.yearOfBirth = yearOfBirth; this.ageCal = function() { console.log(2019 - this.yearOfBirth) }; } //インスタンス作成 var Mike = new Person('Mike', 1990); console.log(Mike.name) => Mike Mike.ageCal() => 29
シンプルに書きましたが、Personコンストラクタ内のageCalメソッドを継承で定義してみます。
function Person(name, yearOfBirth) { this.name = name; this.yearOfBirth = yearOfBirth; } // ageCalメソッドはprototypeの継承で定義 Person.prototype.ageCal = function() { console.log(2019 - this.yearOfBirth) } var Mike = new Person('Mike', 1990); Mike.ageCal()
継承で定義する場合にはコンストラクタ名.prototype.メソッド名(もしくはプロパティ名)で定義します。
今回はメソッドを継承で定義しましたが、プロパティも継承で別で定義することもできます。