Menu
CoddyTech

التحقق من الصحة والآثار الجانبية

جزء من قسم البرمجة كائنية التوجه في رحلة JavaScript على Coddy. الدرس 45 من 56.

يمكن لأساليب الحصول على القيم وتعيينها أن تفعل أكثر من مجرد قراءة الخصائص وكتابتها؛ إذ يمكنها التحقق من صحة المدخلات وتشغيل آثار جانبية عند تغيير القيم.

لننشئ فئة User مع التحقق من الصحة:

class User {
  constructor(name, age) {
    this._name = name;
    this._age = age;
  }
  get age() {
    return this._age;
  }
  set age(value) {
    // تحقّق من أن العمر رقم ويقع ضمن نطاق معقول
    if (typeof value !== 'number') {
      throw new Error('Age must be a number');
    }
    if (value < 0 || value > 120) {
      throw new Error('Age must be between 0 and 120');
    }
    this._age = value;
    // أثر جانبي: سجّل رسالة عند تغيّر العمر
    console.log(`Age updated to ${value}`);
  }
}

الآن، عند استخدام المُعيِّن، يحدث التحقق تلقائيًا:

const user = new User('Alice', 25);
// هذا يعمل
user.age = 30;  // يسجّل: "Age updated to 30"
// هذا يُحدث خطأً
user.age = -5;  // خطأ: يجب أن يكون العمر بين 0 و120
// هذا أيضًا يُحدث خطأً
user.age = "thirty";  // خطأ: يجب أن يكون العمر رقمًا

التحقق من الصحة = التحقق مما إذا كانت القيمة صالحة قبل تخزينها
الآثار الجانبية = إجراءات إضافية تحدث عند تغيّر خاصية

challenge icon

التحدي

لديك فئة BankAccount تحتوي على مُعيِّن أساسي. مهمتك هي إكمال مُعيِّن balance.

أضف إلى المُعيِّن:

  1. التحقّق: تحقّق مما إذا كانت value ليست رقمًا أو كانت أقل من 0؛ إذا كان الأمر كذلك، فاستخدم console.log("Invalid balance") ثم return للخروج من المُعيِّن
  2. أثر جانبي: بعد تخزين قيمة صالحة، استخدم console.log(\`Balance updated to $${value}\`)

جرّب بنفسك

import { BankAccount } from './account.js';

// حالات الاختبار
const account = new BankAccount("Savings");

// الاختبار 1: رصيد صالح
account.balance = 100;
console.log(account.balance);

// الاختبار 2: Invalid balance (سالب)
account.balance = -50;
console.log(account.balance);

// الاختبار 3: Invalid balance (ليس رقمًا)
account.balance = "abc";
console.log(account.balance);

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت