Çözüldü JavaScript başka sayfadaki bir sınıftan miras alma nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

533388

Hectopat
Katılım
27 Mart 2022
Mesajlar
4.463
Makaleler
2
Çözümler
54
Örnek olarak bizim baseclass ve subclass adlı iki dosyamız olsun. Ben bu baseclass adlı sınıfta tanımladığım Class'ı nasıl subclass adlı sayfada miras alabilirim?
 
Çözüm
Acaba ben direk olarak konsola loglama işlemini constructor içinde yaptığım için olabilir mi hata?
Benim kodlarım.

JavaScript:
class Base {
 constructor(name){
 this.name = name;
 console.log(name);
 }
}

JavaScript:
class subClass extends Base{
 constructor(name){
 super(name);
 console.log(name);
 }
}
Yo, sorun olmaz. Ben örnek olsun diye method eklemek için logu ayrı fonksiyon yaptım. sayfaya scriptleri aynı sırada eklediğin müddetçe sorun olmamalı. Mesela bende senin ki gibi yapayım;
1701869334181.png

(İki tane test çıktısı olma sebebi her iki constructorda da console.log yapıyorum)
Subclass oluşturduktan sonra nesne oluşturmuyorsan çıktı görmeyeceksin.
Sınıfı neden başka bir sayfada tanımlıyorsun ki? Eğer birden fazla sayfada kullanman gereken bir sınıf söz konusuysa sınıfı ayrı dosyaya alır oradan include/import edersin. Serverside JS mi yoksa client side mı?
 
Son düzenleme:
@TheAny Client-side tarafında kullanacağım. Mesela.
Sayfa.

JavaScript:
class Base {
 constructor(name){
 this.name = name;
 console.log(name);
 }
}

Sayfa 2
Buradaki sınıftan nasıl türetebilirim? Normalde super kullanarak yapacaktım ama undefined hatası alıyorum.
 
Ekleme sırasına dikkat ettiğin müddetçe client sideda bir şey yapmana gerek yok. Örneğin base class base.js diye bir dosyada olsun. subclass'da script.js diye başka bir dosyada olsun.

base.js;
JavaScript:
class Base {
    constructor(name) {
        this.name = name;
    }
    logName() {
        console.log(this.name);
    }
}

script.js;
JavaScript:
class Subclass extends Base {
    constructor(name) {
        super(name)
    }
}

let obj = new Subclass("test");
obj.logName();

index.html;
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   
    <script src="class.js"></script>
    <script src="script.js"></script>
</body>
</html>

output;
1701868964970.png
 
Ekleme sırasına dikkat ettiğin müddetçe Client sideda bir şey yapmana gerek yok. Örneğin base class base.js diye bir dosyada olsun. Subclass'da script.js diye başka bir dosyada olsun.

base.js;
JavaScript:
class Base {
 constructor(name) {
 this.name = name;
 }
 logName() {
 console.log(this.name);
 }
}

script.js;
JavaScript:
class Subclass extends Base {
 constructor(name) {
 super(name)
 }
}

let obj = new Subclass("test");
obj.logName();

index.html;
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
</head>
<body>

 <script src="class.js"></script>
 <script src="script.js"></script>
</body>
</html>

Output;
Eki Görüntüle 2043319

Acaba ben direk olarak konsola loglama işlemini constructor içinde yaptığım için olabilir mi hata?
Benim kodlarım.

JavaScript:
class Base {
 constructor(name){
 this.name = name;
 console.log(name);
 }
}

JavaScript:
class subClass extends Base{
 constructor(name){
 super(name);
 console.log(name);
 }
}
 
Acaba ben direk olarak konsola loglama işlemini constructor içinde yaptığım için olabilir mi hata?
Benim kodlarım.

JavaScript:
class Base {
 constructor(name){
 this.name = name;
 console.log(name);
 }
}

JavaScript:
class subClass extends Base{
 constructor(name){
 super(name);
 console.log(name);
 }
}
Yo, sorun olmaz. Ben örnek olsun diye method eklemek için logu ayrı fonksiyon yaptım. sayfaya scriptleri aynı sırada eklediğin müddetçe sorun olmamalı. Mesela bende senin ki gibi yapayım;
1701869334181.png

(İki tane test çıktısı olma sebebi her iki constructorda da console.log yapıyorum)
Subclass oluşturduktan sonra nesne oluşturmuyorsan çıktı görmeyeceksin.
 
Çözüm

Technopat Haberler

Yeni konular

Geri
Yukarı