اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر
بتاريخ منذ ساعة مضت قال Mohammmed Mahmoud:

طيب انا استطيع كتابة Date() بدون new ما الفرق

عند استدعاء Date كتابع فإن الناتج من تلك العملية سيكون سلسلة نصية تعبر عن التاريخ الحالي، كلمة new تفيد في بناء كائنات من صنف أو تابع يعامل معاملة التابع الباني، وعند استدعاء نفس التابع مسبوقًا بكلمة new، سيُنشئ جافاسكربت كائن فارغ جديد object ويربطه bind بعملية تنفيذ ثم يربط ال prototype لذلك التابع بهذا الكائن ويعيد ذلك الكائن كناتج من تلك العملية،

الفائدة من ذلك أن كل التوابع المعرفة ضمن prototype التابع الباني سيتم تعيينها ضمن الكائن الجديد، وأن أي متغيرات يتم تعيينها ضمن التابع على الكلمة this سيتم تعيينها ضمن الكائن أيضًا، أي الهدف من الكلمة new هي إنشاء نسخة كائن جديدة تحمل صفات التابع الباني، أو ما يشبه في لغات البرمجة كائنية التوجة الأخرى عملية إنشاء كائن جديد من صنف class، يمكنك الاستفادة من قراءة المقالات التالية:

 

  • 1
نشر

كما وضحت اخى فإن new تستخدم لإنشاء كائن  و هذا الكائن له خصائص و دوال .

ويمكن أيضا إنشاء Date() بدون new ولكن الفرق انه سيوكن من نوع سلاسل نصية .

لنرى الفرق بالكود 

let date1 = new Date();
let date2 = Date();


console.log( date1);  // 2022-08-01T09:13:50.481Z    وهذا كائن 
console.log( date2);  // Mon Aug 01 2022 09:13:50 GMT+0000 (GMT)     وهذا سلسلة نصية

console.log(typeof date1); // object هذا من نوع كائن
console.log(typeof date2); // string وهذا من نوع سلسلة نصية 

وكما قلت ان كل كائن لديه خصائص ودوال وبهذا فإن قمنا بإستخدام المتغير المنشأ بإستخدام new نستطيع استخدام الخصائص والدوال الخاصة بهذا الكائن و العكس بالنسبة للمتغير المنشأ بدون new 

لنرى الفرق فى الكود .

// الكائن من نوع وقت لديه دالة تقوم بطباعة البوم
let date1 = new Date();
let date2 = Date();



console.log( date1.getDay()); // هنا سوف يقوم بطباعة اليوم 
console.log( date2.getDay()); // هنا سوف يحدث خطأ لان المتغير من نوع سلسلة نصية وهو لايملك الدوال الخاصة بالكائن Date

كما موضح فإن السطر الثالث سوف يقوم بطباعة رقم اليوم.

والسطر الرابع سوف يحدث خطأ لان المتغير من نوع سلسلة نصية وهو لايملك الدوال الخاصة بالكائن Date
 

  • 0
نشر

مرحبا أخى .

new تستخدم لبناء الكائنات وهى تقوم بارجاع كائن من النوع التالى لها .

يمكنك قرائة المقال التالى لفهم طريقة عملها وفيما تستخدم .

https://academy.hsoub.com/programming/javascript/الباني-والعامل-new-في-جافاسكربت-r801/

  • 0
نشر
بتاريخ 29 دقائق مضت قال محمد عاطف11:

مرحبا أخى .

new تستخدم لبناء الكائنات وهى تقوم بارجاع كائن من النوع التالى لها .

يمكنك قرائة المقال التالى لفهم طريقة عملها وفيما تستخدم .

https://academy.hsoub.com/programming/javascript/الباني-والعامل-new-في-جافاسكربت-r801/

طيب انا استطيع كتابة Date() بدون new ما الفرق

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...