• 0

آلة حاسبة قابلة للتطويرJavaScrpit

السلام عليكم ,

بالإستعانة بالدالة البانية نريد إنشاء آلة حاسبة تحتوي على عمليتي الجمع (+) و الطرح(-),إلا أنها قابلـة للتطوير وذالك بإضافة مختلف العمليات البسيطة مثل الظرب (*) و القسمة (/), الأس (**),يكون الإدخال بالشكل التالي "a + b" أي : المعامل الأول ثم فراغ واحد ثم العامل(+ او - ,*,**,/) ثم المعامل الثاني 

let calc = new Calculator;

alert( calc.calculate("3 + 7") ); // 10

ولإضافة المزيد من اساليب العمليات الى الدالة :

let powerCalc = new Calculator;
powerCalc.addMethod("*", (a, b) => a * b);   //اضافة اسلوب جديد   
powerCalc.addMethod("/", (a, b) => a / b);   //اضافة اسلوب جديد
powerCalc.addMethod("**", (a, b) => a ** b); //اضافة اسلوب جديد

let result = powerCalc.calculate("2 ** 3");
alert( result ); // 8

 

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

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


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

يمكن إضافة اساليب عمليات جديدة إلى الكائن Calculator ببساطة بواسطة الخاصية this.methods.
وذلك لتتمكن من إضافة دوال جديدة للعمليات الأكثر الأكثر تعقيدًا.

ويمكن كتابة الدالة Calculator  على الشكل التالي:

function Calculator() {

  // إضافة العمليات
  this.methods = {
    "-": (a, b) => a - b,
    "+": (a, b) => a + b
  };

  this.calculate = function(str) {

    let split = str.split(' '),  // تحديد الأعداد والنوع العملية
      a = +split[0],
      op = split[1],
      b = +split[2];

    if (!this.methods[op] || isNaN(a) || isNaN(b)) {
      return NaN;
    }

    return this.methods[op](a, b); // إسترجاع العملية
  };

  this.addMethod = function(name, func) {
    this.methods[name] = func; // إضافة العملية إلى الكائن معرفة بإسمها 
  };
}

 

3 اشخاص أعجبوا بهذا

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


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

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

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

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


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

تسجيل الدخول

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


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