super'in super(1, 2) gibi fonksiyon olarak kullanımı zaten türetildiği sınıfın yapılandırıcısını (constructor) çağırmak içindir. Yapılandırıcısı yoksa çalışmaz.
Eğer türedildiği sınıfın bir fonksiyonuna erişmek isterseniz super.fonksiyonAdı(...) kullanımı çalışır.
Verdiğiniz kodda bazı büyük küçük harf hataları ve bir de hatalı fonksiyon kullanımı vardı. Altta düzeltilmiş örnek var.
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<script>
class Otomobil {
ad(tekersayisi, koltuksayisi) {
this.tekersayisi = tekersayisi;
this.koltuksayisi = koltuksayisi;
}
}
class SporAraba extends Otomobil {
ikincifonk(tekersayisi, koltuksayisi, beygirgucu) {
// super yerine super.ad kullanıldı.
super.ad(tekersayisi, koltuksayisi);
this.beygirgucu = beygirgucu;
}
}
new Otomobil().ad("4", "5");
// Alttakinde ikincifonk fonksiyonundan dönen değeri (dönen olmadığından undefined)
// değişkene atadığından sporAraba değişkeninin değeri undefined olur.
// let sporAraba = new SporAraba().ikincifonk("4", "5", "300");
let sporAraba = new SporAraba();
sporAraba.ikincifonk("4", "5", "300");
document.write(sporAraba.tekersayisi);
</script>
</body>
</html>