JavaScriptのクラス(伝統版)の書き方
Inko = function (name) {
this.namae = name;
};
Inko.prototype.chirp = function () {
console.log(this.namae);
};
var souchan = new Inko("sou");
souchan.chirp();
1~7行目まではInkoたこやきの型を作る定義
1~3行目
Inko = function (name) {
this.namae = name;
};
thisにはInkoたこやきの参照(C言語でのアドレス)が入っているので、this.namaeはInkoたこやき.namaeといえる
5~7行目
Inko.prototype.chirp = function () { //関数を作りprototypeで定義
console.log(this.namae);
};
たこやきの型にメソッド(この場合はchirp)を定義する時はprototypeを使う。(全たこやきで使える)
たこやきの型にメソッド(chirp)を定義しなかった場合は、各たこやきでメソッドを定義する。
9行目
var souchan = new Inko("sou");
新しくインコたこやきを作る処理、裏でthisにInkoたこやきの参照をセットしてコンストラクタ関数(Inko)を呼び出す。
10行目
souchan.chirp();
souchanにchirpメソッドは定義されていないため、prototype(5行目)に同じ名前のメソッドがないか探し、あればそれを実行する。無ければエラー