プロトタイプベースの継承とコンストラクタ
JavaScriptのコンストラクタとか継承とかわからないなりにまとめ。
人間のトムとミュータントのケンをJavaScriptで表現してみるよ。
//人間 var Human = function(name, age){ this.name = name; this.age = age; this.type = 'Human'; }; //人間は、聞いたら自分のことを紹介してくれるよ Human.prototype.showStatus = function(){ var str = ''; for(var i in this)if(this.hasOwnProperty(i)){ str += i + ' = ' +this[i] + '\n'; } alert(str); }; //トムはtomって名前の17歳の人間だよ var tom = new Human('tom', 17); //ミュータント function Mutant(name, age, skill){ Human.call(this, name, age);//人間としての名前と年齢 this.type = 'Mutant'; this.skill = skill;//ミュータントのスキル }; //ミュータントも人間だからHumanクラスを継承するよ Mutant.prototype = new Human; //ケンはkenって名前で19歳ですごい必殺技を持ってるよ var ken = new Mutant('ken', 19, 'エターナルフォースブリザード'); //トムもケンも人間だから //聞いたら自己紹介してくれるはずだよ tom.showStatus(); /* name = tom age = 17 type = Human */ ken.showStatus(); /* name = ken age = 19 type = Mutant ability = エターナルフォースブリザード */
相手は死ぬよ!