• 0

إستدعاء دالة ضمن دالة أخرى من نفس الكلاس

السلام عليكم ...

سؤالي جزاكم الله خير  هو أني عملت كلاس و داخل الكلاس  فونكشن متعددة ... و سؤالي هو كيف أضع واحدة داخل الأخرى ...

أنا أعلم عند وضعها خارج الكلاس كيف الطريقة.... لكن كيف استخدام واحدة داخل الأخرى في نفس الكلاس ما ظبطت معي مع العلم اني  حاولت في

this.functionName ما مشي الحال معي

أرجو منكم التوضيح بارك الله فيكم

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

مرحباً خميس: 
يجب أن تستدعي الدالة الأخري فقط 
 

class Teaching {

	method1() {
    
    	return 1;
    }
    
    method2() {
    	sum = 5 + this.method1();
    	
      	return sum; // 6
    }
}

new Teaching().method2(); // 6

هذا مثال تطبيقي

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

مرحباً ...
إستدعاء الدالة ضمن الكلاس نفسه في دالة أخرى يكون ببساطة بالشكل التالي:

لغة جافا مثلاً:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    
    // في هذه الدالة قمنا بإستخدام الدوال getName و getAge
    public String toString() {
        return "Person name: " + this.getName() + ", age => " + this.getAge();
    }
}

public class Main
{
    
	public static void main(String[] args) {
		Person p = new Person("Samir", 25);
        System.out.println(p); // سيتم إستدعاء الدالة toString
	}
}

يُمكنك التجربة من خلال هذا الرابط

لغة c++ مثلاً:

#include <iostream>
using namespace std;


class Person {
private:
        string name;
        int age;

public:
    Person(string name, int age) {
        this->name = name;
        this->age = age;
    }

    const string &getName() const {
        return name;
    }

    void setName(const string &name) {
        Person::name = name;
    }

    int getAge() const {
        return age;
    }

    void setAge(int age) {
        Person::age = age;
    }



    // في هذه الدالة قمنا بإستخدام الدوال getName و getAge
    void putData() {
        cout << "Person Name: " << this->getName() << ", age => : " << this->getAge() << endl;
    }
};

int main() {
    Person *p = new Person("Samir", 25);
    p->putData();
    return 0;
}

يُمكنك التجربة من خلال هذا الرابط

لغة جافاسكربت مثلاً:

class Rectangle {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
  // Getter
  get area() {
    return this.calcArea(); // إستدعاء التابع calcArea
  }
  // Method
  calcArea() {
    return this.height * this.width;
  }
}

const rec = new Rectangle(5, 10);
document.querySelector('p').innerText = rec.area; // وضع مساحة المستطيل في الفقرة

يُمكنك تجربة المثال من خلال هذا الرابط

بالتوفيق

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

جزاكم الله خير أخواني على الردود ... علشان أوضح لكم سؤالي أكثر و أفهم جوابكم أكثر باكتب لكم الكود اللي اشتغلت عليه ..

و أرجو النظر في آخر الأسطر هناك 2functions ... عند كتابتهما داخل كلاس UserUI كيف لي استخدامهما داخل showAlert

و أنا وضحت السؤال في الكومنت تحت ...

 

 

app.js

 

عفوا نسيت كيف يكتب الكود هنا بالشكل الصحيح ... لذلك أرفقت لكم ملف الجافا سكربت

 

تمّ تعديل بواسطة خميس الشمري

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
class Rectangle {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
  // Getter
  get area() {
    return Rectangle.calcArea(); // إستدعاء التابع calcArea
  }
  // Method
 static calcArea() {
    return this.height * this.width;
  }
}

تم حل المسألة بجعل الفونكشن عبارة عن static   جزاكم الله خير

تمّ تعديل بواسطة خميس الشمري

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن