bu soruda Dog.prototype.constructor=Dog; bunu yazmamızın gereği neydi ve neden nerelerde kullanılır
recursive function olarak geçer. bir fonksiyonu kendi içinde kullanabiliyoruz. oop paradigmasında kalıtım/miras olayında avantaj. tam anlatamadım. recursive function diye aratıp bakabilirsin.
soru onu yazmayınca da doğru cevap veriyor. sadece cevaba neden yazdık ve hayatta nerede kullanıyoruz
Prototype'ı kopyalarken (object.create() ile) consturctor'ı da kopyalıyorsun. Dolayısıyla bahsettiğin satırı yazmadığın sürece (yani Dog constuctor'ını da değiştirmediğin sürece) yeni dog objesi animal constructor'ını kullanır. Bunu düzeltmek için o satırı ekliyoruz.
ibb.co
Edit: constructor'da ilginç bişeyler yapmıyorsan aslında elzem değil, ama iyi bir pratik.
Edit2: şunu da şuraya bırakayım. Kanal çok güzel, bence takip edin: www.youtube.com
freecodecamp çok basit düzeyde metodlar ve miras mantığını kavratmak için kısa tutmuş. kodun çalışması normal dog fonksiyonunun yaptığı bir iş yok animaldan miras alıyor. function Dog() {} buradan anlaman gereken şu; dog fonksiyonu oluşturulmuş tamam da ne yapıyor? hiçbir şey. çünkü süslü parantez arasında yer alması gereken kodlar yok. amaç sana miras mantığını anlatmak.
function Dog() {
console.log("Meow");
}
yaz sonrasında ise bunu
Dog.prototype.bark = Dog();
};