tixture55’s diary

主にプログラミング関係の日記です。

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まで。実アプリ運用ではクラスタ化しないと使えないだろうな。その辺もまた学習していこうと思います。