Cevap Geçmişi
14.06.21 01:45
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>
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
13.06.21 22:44
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) // 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>
Ekleyen: cevapsitesi
En fazla 3 eski durum gösterilir.