السلام عليكم و رحمه الله و بركاته
لديك وظيفه function يمكن تمرير 3 عبارات parameters لها و تريد أن تجعل العباره الاخيره إختياريه اى يمكن إستدعاء الوظيفه بدون إعطاء هذه العباره قيمه ، فى PHP يمكنك تحقيق التالى عن طريق إعطاء ال parameter قيمه فى جسم ال function الااساسيه كما يوضح الكود التالى :
<?php
function my_function( $par1, $par2, $par3 = “default Value” ){
//some code
}
?>
لكن فى جافاسكربت لا يمكنك إعطاء قيمه إفتراضيه لل parameters عند تعريف ال function ، و لكن الحل فى إستخدام المعامل || داخل جسم الوظيفه كما بوضح الكود التالى
function my_function( par1, par2, par3 ){
var par3 =par3 || ” default value” ;
//some code
}
المعامل || يقوم بإعطاء المتغير القيمه التى على شماله إذا كانت true او تحتوى على قيمه ، او يعطى المتغير القيمه التى على يمينه إذا كانت true او تحتوى على قيمه ، او يعطى للمتغير القيمه false إذا كان القيمتين اليمين و الشمال false ، و فى الكود بالأعلى يقوم المعامل بفحص قيمه par3 إذا كانت غير موجوده فإنه يعطى المتغير par3 القيمه default value ، أود الإشاره انى قمت بنقد كتاب O’Reilly programming firefox هنا ، و كتاب Apress javascript design patterns هنا .
الأوسمة: javascript, php
23/09/2008 عند 6:31 ص |
السلام عليكم ورحمة الله وبركاته
جميل جدا ..في حال الرغبة في وضع قيمة افتراضية ..لكن هناك مشكلة هي : في حال ان قيمة المتغير الممرر صفر فان القيمة العائدة تكون false
الطريقة البديلة :
par1 = typeof par1==’undefined’ ? 5 : par1;
في هذه الحالية لو لم تمرر قيمة المتغير par1 فانه سيأخذ القيمة الافتراضية (5)
شكرا جزيلا على سعة صدرك
31/10/2008 عند 10:03 ص |
فكرة رائعة جداً
لم تخطر لي على بال
وأشكر الأخ على حمدان على مداخلته التي أفادتني كثيراً