دوال المساعدة الثابتة (Static Utility Methods)
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 33 من 56.
الدوال الساكنة (Static methods) هي دوال مساعدة تنتمي إلى الفئة (class) نفسها بدلاً من كائنات (instances) الفئة. وهي مفيدة للدوال التي لا تتطلب الوصول إلى بيانات خاصة بالكائن.
لنقم بإنشاء فئة (class) تحتوي على دالة مساعدة ثابتة (static utility method):
class MathHelper {
// تعريف دالة ثابتة
static square(number) {
return number * number;
}
}لاستدعاء تابع ثابت (static method)، يمكنك استخدام اسم الفئة (class name) مباشرة:
// استدعاء التابع الثابت دون إنشاء كائن (instance)
const result = MathHelper.square(5);
console.log(result); // 25لاحظ أننا لم نكن بحاجة لإنشاء مثيل جديد باستخدام new MathHelper(). تعد الدوال الثابتة (Static methods) مثالية للدوال المساعدة التي تنفذ عمليات دون الحاجة إلى بيانات المثيل.
التحدي
قم بإنشاء فئة (class) باسم StringUtils تحتوي على طريقة ثابتة (static method) تسمى capitalize تأخذ سلسلة نصية (string) كوسيط وتُرجع نفس السلسلة مع تحويل الحرف الأول إلى حرف كبير (capitalized). على سبيل المثال، إذا كان الإدخال هو "javascript"، يجب أن تُرجع الطريقة "Javascript". قم بتصدير (Export) هذه الفئة.
- تحقق مما إذا كانت السلسلة فارغة:
if (!str || str.length === 0)(بدون هذا التحقق، قد تتسبب السلسلة الفارغة في حدوث مشكلات).!strيتحقق من قيمnull/undefined(يمنع الأخطاء)str.length === 0يتحقق من السلسلة الفارغة (يُرجع "" بدلاً من تعطل البرنامج)
- الحصول على الحرف الأول:
str.charAt(0) - جعله حرفاً كبيراً:
.toUpperCase() - الحصول على بقية السلسلة:
str.slice(1)(من الموقع 1 إلى النهاية) - الدمج: الحرف الأول الكبير + بقية السلسلة
ورقة مرجعية
الطرق الساكنة (Static methods) هي وظائف مساعدة تنتمي إلى الفئة (class) نفسها بدلاً من النسخ (instances). وهي لا تتطلب الوصول إلى البيانات الخاصة بالنسخة.
قم بتعريف طريقة ساكنة باستخدام الكلمة المفتاحية static:
class MathHelper {
static square(number) {
return number * number;
}
}استدعِ الطرق الساكنة مباشرة على الفئة دون إنشاء نسخة:
const result = MathHelper.square(5);
console.log(result); // 25طرق نصية (string methods) مفيدة للأدوات المساعدة الساكنة:
str.charAt(0)- يجلب الحرف الأولstr.toUpperCase()- يحول إلى أحرف كبيرةstr.slice(1)- يجلب سلسلة فرعية من الموضع 1 إلى النهاية!str || str.length === 0- يتحقق مما إذا كانت القيمة null/undefined أو سلسلة فارغة
جرّب بنفسك
import { StringUtils } from './stringUtils.js';
// لا تعدل الكود أدناه
console.log(StringUtils.capitalize("programming"));يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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 والتصديروراثة فئة Circle9الخصائص والدوال الثابتة (Static)
مستوى الكلاس مقابل مستوى الكائنالخصائص الثابتة (Static Properties)دوال المساعدة الثابتة (Static Utility Methods)تحدي المراجعة