Methods الخاصة
جزء من قسم البرمجة كائنية التوجه في رحلة JavaScript على Coddy. الدرس 19 من 56.
تتيح الطرق الخاصة في فئات JavaScript إخفاء تفاصيل التنفيذ ومنع الوصول الخارجي إلى الوظائف الداخلية.
ابتداءً من ES2022، يمكن تعريف الأساليب الخاصة باستخدام البادئة #:
class Counter {
#count = 0;
// أنشئ دالة خاصة
#increment() {
this.#count++;
}
// دالة عامة تستخدم الدالة الخاصة
addOne() {
this.#increment();
return this.#count;
}
}لنُنشئ نسخة من Counter:
const myCounter = new Counter();يمكننا استدعاء الطريقة العامة:
console.log(myCounter.addOne()); // الناتج: 1لكن محاولة الوصول إلى الطريقة الخاصة مباشرةً ستؤدي إلى حدوث خطأ:
myCounter.#increment(); // خطأ: لا يمكن الوصول إلى الطريقة الخاصة من خارج الصنفتساعد الأساليب الخاصة في الحفاظ على التغليف من خلال إبقاء تفاصيل التنفيذ الداخلية مخفية عن العالم الخارجي.
التحدي
أُعطيتَ فئة 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)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس البرمجة كائنية التوجه
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تدرّب بنفسك: مترجم JavaScript عبر الإنترنت