English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في الفصول السابقة تعلمنا كيفية إنشاء العناصر في JavaScript.
مثال الأجزاء في الفصول القديمة محدود.
في بعض الأحيان نحتاج إلى "نموذج" لإنشاء العديد من العناصر المختلفة (مثال).
طريقة إنشاء "نموذج" هي استخدامدالة المكون للعنصر。
عنصردالة المكون للعنصريمكن إنشاء العديد من العناصر (مثال) بنفس الخصائص والطرق بسهولة.
في المثال التالي، function User() هي دالة مكونة لعنصر:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; }
من خلال استخدام كلمة المفتاح new لاستدعاء الدالة المكونة لإنشاء نفس نوع العناصر المختلفة:
var Seagull = new User("Seagull", "Anna", 22, "New Delhi"); var tarush = new User("Tarush", "Balodhi", 34, "Bihar");اختبار لرؤية‹/›
كما ترون، يمكننا بناء عدد كبير من جسام المستخدمين المختلفة بسرعة باستخدام بناء النموذج User باستخدام مختلف المعلمات. هذا يشبه تمامًا النمط الذي يستخدمه JavaScript في بناء النموذج المدمج (مثل Array() و Date()).
يملك JavaScript كلمة مفتاح خاصة تُدعى this، يمكنك استخدامها في الطريقة للاشارة إلى الجسم الحالي.
عند استخدام this في الجسم، تكون قيمته الجسم نفسه.
لا يحمل this قيمة في بناء النموذج. يُستبدل بالجسم الجديد. يصبح قيمة this عند إنشاء جسم جديد.
لإضافة خاصية جديدة إلى الجسم، يمكنك استخدام عمودية التساوي (=) لتخصيص القيمة الجديدة إلى الخاصية.
Seagull.weapon = "Sword";اختبار لرؤية‹/›
ملاحظة:سيتم إضافة هذه الخاصية إلى Seagull. لا (لا تنطبق على أي جسم آخر من User).
لإضافة طريقة جديدة إلى الجسم، يمكنك استخدام عمودية التساوي (=) لتخصيص الدالة الجديدة إلى الخاصية.
Seagull.greet = function() { return "Hello World"; };اختبار لرؤية‹/›
ملاحظة:سيتم إضافة هذه الطريقة إلى Seagull (لا تشير إلى أي جسم آخر من User).
لا يمكن إضافة خاصية جديدة إلى بناء النموذج مثل إضافة خاصية جديدة إلى جسم موجود:
User.weapon = "Sword";اختبار لرؤية‹/›
لإضافة خاصية جديدة إلى بناء النموذج، يجب إضافتها إلى بناء النموذج:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.weapon = "Sword"; }اختبار لرؤية‹/›
في بعض الأحيان، نريد إضافة خاصية جديدة إلى بناء النموذج في وقت لاحق، هذه الخاصية ستتشارك بين جميع الأجسام (النماذج). الإجابة هيالنموذج الموضوعي。
يمكن أيضًا تعريف طرق بناء النموذج.
نحنلا يمكنإضافة طريقة جديدة إلى بناء النموذج مثل إضافة طريقة جديدة إلى جسم موجود.
عند إضافة طريقة إلى الجسم يجب أن يتم ذلك داخل بناء النموذج.
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.fullName = function() { return this.firstName + " " + this.lastName; }; }اختبار لرؤية‹/›
في بعض الأحيان نريد إضافة طريقة جديدة إلى بناء النموذج في وقت لاحق، هذه الطريقة ستتشارك بين جميع الأجسام (النماذج). الإجابة هيالنموذج الموضوعي。
يحتوي JavaScript على بنود بناء مدمجة للعناصر الأصلية:
let x1 = new String(); // عنصر جديد String. let x2 = new Number(); // عنصر جديد Number. let x3 = new Boolean(); // عنصر جديد للبولياني. let x4 = new Object(); // عنصر جديد Object. let x5 = new Array(); // عنصر جديد Array. let x6 = new RegExp(); // عنصر جديد RegExp. let x7 = new Date(); // عنصر جديد للوقت. let x8 = new Function(); // عنصر جديد للوظيفة.اختبار لرؤية‹/›
كما ترون في أعلاه، يحتوي JavaScript على أنواع بيانات أساسية كعناصر مثل String، Number وBoolean.
ليس لدينا سبب لإنشاء عناصر معقدة. لأن القيم الأساسية أسرع بكثير.
عليك دائمًا معالجة الأرقام والStrings والboolean كقيم أساسية. لا تعاملها كعناصر.
سيقلل من سرعة التنفيذ وسيظهر نتائج غير متوقعة إذا تم إعلان هذه الأنواع كعناصر.
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 === str2); // يعود بخطأ، لأن str1 و str2 لهما أنواع مختلفةاختبار لرؤية‹/›
لا يمكن مقارنة العناصر:
var str1 = new String("New Delhi"); var str2 = new String("New Delhi"); document.write(str1 == str2); // يعود بخطأ، لأن str1 و str2 لهما أنواع مختلفة document.write(str1 === str2); // r يعود بخطأ، لأن str1 و str2 لهما أنواع مختلفةاختبار لرؤية‹/›
يمكن القيام بذلك أيضًا:
استخدام {} بدلاً من new Object()
استخدام "" بدلاً من new String()
استخدام 0 بدلاً من new Number()
استخدام false بدلاً من new Boolean()
استخدام [] بدلاً من new Array()
استخدام /()/ بدلاً من new RegExp()
استخدام function (){} بدلاً من new Function()
let x1 = {}; let x2 = ""; let x3 = 0; let x4 = false; let x5 = []; let x6 = /()/; let x7 = function(){};اختبار لرؤية‹/›
عادةً ما يتم إنشاء النصوص في JavaScript كقيم مكتوبة: var city = "New Delhi";.
لكن يمكنك أيضًا استخدام كلمة المفتاح new لتحديد النصوص كأجسام: var city = new String("New Delhi");.
في " ال نصوص في JS للإطلاع على لماذا لا يجب إنشاء الأحرف كأجسام في هذا الفصل.
عادةً ما يتم إنشاء الأرقام في JavaScript كقيم مكتوبة: var num = 50;.
لكن يمكنك أيضًا استخدام كلمة المفتاح new لتحديد الأرقام كأجسام: var num = new Number(50);.
في " الأرقام في JS للإطلاع على لماذا لا يجب إنشاء الأرقام كأجسام في هذا الفصل.
عادةً ما يتم إنشاء القيم الحقيقية في JavaScript كقيم مكتوبة: var x = false;.
لكن يمكنك أيضًا استخدام كلمة المفتاح new لتحديد القيم الحقيقية كأجسام: var x = new Boolean(false);.
في " قيم الحقيقة في JS للإطلاع على لماذا لا يجب إنشاء القيم الحقيقية كأجسام في هذا الفصل.