新品価格 |
[書評]オブジェクト指向javascriptの原則 4章を読んだ
の続編
5章は継承
以下、5章
・valueOf
オブジェクトに演算子が使用される際に暗黙的に呼ばれる
だから、これ継承すると出力した値を使用することができる
function Person(first, last) {
this.first = first;
this.last= last;
}
var person = new Person("masterka", "tanaka");
console.log("person is "+person);//[Object Object]
Person.prototype.valueOf = function () {
return this.first+" "+this.last;
}
console.log("person is "+person); //masterka tanaka
・toString
toStringもvalueOfと同じように使える
・親クラスの関数を呼ぶ
jsはプロトタイプチェーンを介して継承がおこなわれる
ここで明示的に親クラスの関数を呼びたいときは
callやapplyを使う
//コンストラクタ呼ぶ
function Saiyajin(first, last) {
Person.call(this, first, last);
}
Saiyajin.prototype = Object.create(Person.prototype,{
construtor:{
configurable: true,
enumerable: true,
value: Saiyajin,
writable: true
}
});
//valueOf上書き
Saiyajin.prototype.valueOf = function() {
var text = Person.prototype.valueOf.call(this);
return text.replace("person", "saiyajin");
}
var saiyajin= new Saiyajin("masterka", "tanaka");
console.log("saiyajin is "+saiyajin);
本章もためになりました
継承jsで書くの面倒ですけどapply,call使えば
確かに便利そうですね
もう少しでこの本も終わり
タグ:javascript