Methods الخاصة
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 19 من 56.
تسمح الميثودات الخاصة (Private methods) في كلاسات JavaScript بإخفاء تفاصيل التنفيذ ومنع الوصول الخارجي إلى الوظائف الداخلية.
بدءًا من ES2022، يمكن تعريف الطرق الخاصة (private methods) باستخدام البادئة #:
class Counter {
#count = 0;
// إنشاء دالة خاصة
#increment() {
this.#count++;
}
// دالة عامة تستخدم الدالة الخاصة
addOne() {
this.#increment();
return this.#count;
}
}لنقم بإنشاء مثيل (instance) لـ Counter:
const myCounter = new Counter();يمكننا استدعاء الدالة العامة:
console.log(myCounter.addOne()); // النتيجة: 1لكن محاولة الوصول إلى الطريقة الخاصة مباشرة ستؤدي إلى حدوث خطأ:
myCounter.#increment(); // Error: Private method is not accessible outside classتساعد الطرق الخاصة (Private methods) في الحفاظ على التغليف (encapsulation) من خلال إبقاء تفاصيل التنفيذ الداخلية مخفية عن العالم الخارجي.
التحدي
لقد تم إعطاؤك فئة MessageBox تقوم بتخزين الرسائل. مهمتك هي إضافة طريقة خاصة تسمى #isValidMessage(text) للتحقق من صحة الرسائل. يجب أن تقوم بـ:
- إرجاع
trueإذا كان النص غير فارغ وأقل من 100 حرف - إرجاع
falseبخلاف ذلك
جرّب بنفسك
import { MessageBox } from './messageBox.js';
// استخدام صندوق الرسائل
const box = new MessageBox();
console.log(box.setMessage("Hello")); // "Message set!" (يستخدم #isValidMessage)
console.log(box.setMessage("")); // "Invalid message!" (يستخدم #isValidMessage)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circleإعادة التعريف ودالة المساحةعداد الأشكال Static