دورة javascript للمبتدئين الدرس الثاني والعشرون


فهاد الدرس الجديد من دورة javascript للمبتدئين غادي نشوفوا واحد لحاجة مهمة ف la programmation orientée objet غادي نشوفوا l'héritage ولي كيمكن من أن une classe ت hériter les propriété و les méthodes ديال une autre classe.


1- كيفاش une classe ت hériter من une autre classe

فباش نخلي une classe ت hériter من une autre classe فالمثال لي عندي زدنا classe جديدة سميناها Client بل mot clé extends  كنقول بلي كت hériter من  la classe Person وفل constructeur كنزيد super لي كتاخد les propriétés ديال ل constructeur parent لي فل classe Person وفل constructeur ديال la classe ديالي كنزيد les propriétés الخاصين ب Client الكود لي زدنا هو :

                                //main.js

class Client extends Person{
    constructor(nom,prenom,age,tel,ville){
        super(nom,prenom,age);
        this.tel = tel;
        this.ville = ville;
    }
}
                            

2- عرض المعلومات الخاصة ب Client

فباش نعرض المعلومات فالمثال لي عندي كن créer l'objet من la classe Client كنعطيه nom,prenom,age,tel,ville منبعد ب console.log كن afficher bonjour samadi samir حيت وخا ل fonction كاينة ف la classe Person كنخدم بها حيت Client كت hériter من Person الكود لي زدت هو:

                                //main.js

class Client extends Person{
    constructor(nom,prenom,age,tel,ville){
        super(nom,prenom,age);
        this.tel = tel;
        this.ville = ville;
    }
}
const client = new Client('samadi','samir',30,097788899,'Fes');
console.log(client.hello());
                            

3- استخدام les fonctions statiques ديال ل classe mére

فالمثال لي عندي كنخدم بل fonction statique ديال Person بنفس الطريقة لي خدمت بها ف Person ولي كترجع سنة الإزدياد فكنعطيها ل age ديال ل client وكترجعلي السنة الكود لي زدنا هو :

                                //main.js

class Client extends Person{
    constructor(nom,prenom,age,tel,ville){
        super(nom,prenom,age);
        this.tel = tel;
        this.ville = ville;
    }
}
const client = new Client('samadi','samir',30,097788899,'Fes');
console.log(Client.yearOfBirth(client.age));
                            

4- كيفاش ن hériter من fonction

فكيف شفنا ممكن ل classe ت hériter من une autre classe هاد المرة غادي نشوفوا كيفاش ن hériter من une fonction فالمثال لي عندي كنزيد une fonction سميتها parent كتاخد nom منبعد كت retourner une classe لي فيها fonction sayHello لي فقط كت afficher message bonjour samadi منبعد كن créer l'objet من la classe Client ولي كت hériter ل fonction parent وكنعطيها ل paramètre nom منبعد كن exécuter ل fonction sayHello لي كت afficher ل message الكود لي زدنا هو :

                                    //main.js

function parent(nom){
    return class{
        sayHello(){
            return `Bonjour ${nom}`;
        }
    }
}
class Client extends parent('samadi'){}
const client = new Client();
console.log(client.sayHello());
                                

5- كيفاش ن hériter من une classe pure javascript

ف javascript كاين des classes لي réservées  فمثلا Array,Map وغيرهم فالمثال لي عندي كنزيد classe Product لي كت hériter من Array لي هي classe javascript منبعد كنزيد fonction countProducts لي كت retourner شحال من produit فل array منبعد كن créer l'objet من la classe Product كنعطيه مجموعة ديال les produits منبعد كنعيط ل fonction countProducts لي كترجع 4 ولي هو عدد les produits لي فل array الكود لي زدنا هو :

                                    //main.js

class Product extends Array{
    countProducts(){
        return this.length;
    }
}
const products = new Product('samsung','hp','htc','iphone');
console.log(products.countProducts());