ex09-02-9
実行結果
name: Sub
isSuper: true
isSub: true
sneaky: 非推奨! (継承)
ソース
class Super { /* スーパークラスの定義 */
constructor() {
this.name = 'Super';
this.isSuper = true;
}
}
Super.prototype.sneaky = '非推奨!'; /* こうすることは可能だが、非推奨 */
class Sub extends Super { /* サブクラスの定義 */
constructor() {
super();
this.name = 'Sub';
this.isSub = true;
}
}
const obj = new Sub(); /* サブクラスに属するオブジェクトをひとつ生成 */
for(let p in obj) {
console.log(`${p}: ${obj[p]}` +
(obj.hasOwnProperty(p) ? '' : ' (継承)')); /* 三項演算子 5章参照 */
}
/* 実行結果
name: Sub
isSuper: true
isSub: true
sneaky: 非推奨! (継承)
*/