node.jsで継承する
golangでは淘汰されていても、やっぱりPHPerの私は継承がすきということで継承のお話です。
まぁ業務でもめちゃめちゃ深度が深い継承とかみると、「結局どこに書いてあるんだよ!」って怒りが湧いてくることもある概念ですが、やっぱりnode.jsでも継承させたいぞ!ってことで継承の勉強始めます。
var util = require('util');
util.inherits(X, Y);
第一引数に子コンストラクタ、第二引数に親コンストラクタを指定します。
var util = require('util');
function Player (name, nationality) {
this.name = name;
this.nationality = nationality;
}
Player.prototype.toString = function () {
return this.name + ' ' + this.nationality;
};
function PlayersItem (name, nationality, item) {
Player.call(this, name, item);
this.item = item;
}
util.inherits(PlayersItem, Player);
PlayersItem.prototype.toString = function () {
return PlayersItem.super_.prototype.toString.call(this) + ' ' + this.item;
};
var soccer = new PlayerItem('soccer', 'FootBall', 'Moe Hosogai');
console.log(soccer.name);
console.log(soccer.nationality);
console.log(soccer.item);
console.log(soccer.toString());
出力結果↓
soccer
Football
Moe Hosogai
soccer Football Moe Moe Hosogai
そういやnode.jsってシングルスレッドな実行環境だからCPUコアを一つしか使えないんだよね。しかもV8の縛りでメモリも1.5GBまで。実アプリ運用ではクラスタ化しないと使えないだろうな。その辺もまた学習していこうと思います。