اذهب إلى المحتوى
  • 0

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

خميس الشمري

السؤال

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

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

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

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

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 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   جزاكم الله خير

تم التعديل في بواسطة خميس الشمري
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...