Methods الخاصة
جزء من قسم البرمجة كائنية التوجه في رحلة JavaScript على Coddy. الدرس 19 من 56.
تسمح أساليب Private في أصناف 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(); // خطأ: الطريقة الخاصة غير قابلة للوصول خارج الصنفتساعد الأساليب Private في الحفاظ على التغليف من خلال إبقاء تفاصيل التنفيذ الداخلية مخفية عن العالم outside.
التحدي
أُعطيتَ فئة MessageBox تخزّن الرسائل. مهمتك هي إضافة method private باسم #isValidMessage(text) للتحقق من صحة الرسائل. ينبغي أن:
- تعيد
trueإذا كان text غير فارغ وأقل من 100 characters - تعيد
falseotherwise
جرّب بنفسك
import { MessageBox } from './messageBox.js';
// استخدام صندوق الرسائل
const box = new MessageBox();
console.log(box.setMessage("Hello")); // "Message set!" (uses #isValidMessage)
console.log(box.setMessage("")); // "Invalid message!" (uses #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 عبر الإنترنت