بناء الكائنات لجافا سكريبت
- الصفحة السابقة مستطاعي JS للعناصر
- الصفحة التالية أصل JS للعناصر
النموذج
function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
عادةً من الجيد تسمية دالة البناء بأحرف كبيرة.
نوع الكائن (خطة) (فئة)
المثال في الفصل السابق محدود. إنه يخلق كائنًا واحدًا فقط.
في بعض الأحيان نحتاج إلى إنشاء العديد من الكائنات من نفس "الخطة".
طريقة إنشاء "نوع الكائن" هو استخدامدالة بناء الكائن。
في المثال السابق،دالة Person() هي دالة بناء الكائن.
من خلال new كلمة مفتاحية استدعاء دالة البناء يمكن إنشاء كائنات من نفس النوع:
كلمة مفتاحية myFather = new Person("Bill", "Gates", 62, "blue"); كلمة مفتاحية myMother = new Person("Steve", "Jobs", 56, "green");
this كلمة مفتاحية
كلمة مفتاحية this
الاشياء في JavaScript تُدعى
this
عند استخدامه في الكائن، هو الكائن نفسه.
في دالة البناءthis
لايوجد قيمة. هو بديل للاجتماع الجديد. عند إنشاء اجتماع جديد، يصبح قيمة this هذا الاجتماع الجديد.
الرجاء الانتباه this
إنها ليست متغيرًا. إنها كلمة مفتاحية. لا يمكنك تغيير قيمة this.
إضافة خاصية إلى الكائن
إضافة خاصية جديدة إلى كائن موجود سهلة جدًا:
النموذج
myFather.nationality = "English";
تم إضافة الخاصية الجديدة إلى myFather. وليس myMother ولا أي كائن person آخر.
إضافة طريقة إلى الكائن
إضافة طريقة جديدة إلى كائن موجود سهلة جدًا:
النموذج
myFather.name = function () { return this.firstName + " " + this.lastName; };
تم إضافة الطريقة الجديدة إلى myFather. وليس myMother ولا أي كائن person آخر.
إضافة خاصية إلى البناء
على عكس إضافة خاصية جديدة إلى كائن موجود، لا يمكنك إضافة خاصية جديدة إلى بناء الكائن:
النموذج
Person.nationality = "English";
لإضافة خاصية جديدة إلى البناء، يجب أن يتم إضافتها إلى دالة البناء:
النموذج
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
بهذا يمكن أن تحصل خصائص الكائن على قيم افتراضية.
إضافة طريقة إلى البناء
يمكن أن تعرف طريقة في دالة البناء الخاصة بك أيضًا:
النموذج
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.name = function() {return this.firstName + " " + this.lastName;}; }
على عكس إضافة طريقة جديدة إلى كائن موجود، لا يمكنك إضافة طريقة جديدة إلى بناء الكائن.
يجب أن يتم إضافة الطريقة إلى الكائن داخل دالة البناء:
النموذج
function Person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
وظيفة changeName() تغير اسم name وتسلمه إلى الخاصية lastName من person.
الآن يمكنك تجربتها:}
myMother.changeName("Jobs");
من خلال myMother
بديل this،يمكن لـ JavaScript معرفة الشخص الذي يعالجه حاليًا.
المولدات المدمجة في JavaScript
يقدم JavaScript مولدات للاشارات الأصلية:
النموذج
var x1 = new Object(); // كائن Object جديد var x2 = new String(); // كائن String جديد var x3 = new Number(); // كائن Number جديد var x4 = new Boolean(); // كائن Boolean جديد var x5 = new Array(); // كائن Array جديد var x6 = new RegExp(); // كائن RegExp جديد var x7 = new Function(); // كائن Function جديد var x8 = new Date(); // كائن Date جديد
Math()
الكائنات ليست في هذا القائمة. Math هو الكائن العام.new
المفاتيح لا يمكن استخدامها في Math.
هل تعلم؟
كما هو موضح أعلاه، يقدم JavaScript نسخة الأصلية من السلاسل والأرقام والبوليانات. ولكن ليس هناك سبب لإنشاء كائنات معقدة. القيم الأصلية أسرع بكثير!
الرجاء استخدام تعبير الكائن {}
البديل new Object()
。
الرجاء استخدام تعبير السلسلة ""
البديل new String()
。
الرجاء استخدام تعبير العدد بدلاً عنه Number()
。
الرجاء استخدام تعبير الحقيقي بدلاً عنه new Boolean()
。
الرجاء استخدام تعبير القائمة []
البديل new Array()
。
الرجاء استخدام تعبير النمط بدلاً عنه new RexExp()
。
الرجاء استخدام تعبير الدالة () {}
البديل new Function()
。
النموذج
var x1 = {}; // الجديد من الكائنات var x2 = ""; // الجديد من القيم الأصلية للسلسلة var x3 = 0; // الجديد من القيم الأصلية للعدد var x4 = false; // الجديد من القيم الأصلية للعبرة var x5 = []; // جديد للعنصر النصي var x6 = /()/ // جديد للعنصر النصي var x7 = function(){}; // جديد للعنصر الدالة
عنصر نص
عادةً، يتم إنشاء القيم النصية كقيم أساسية: var firstName = "Bill"
لكن يمكنك أيضًا استخدام new
مفتاح الكلمة لإنشاء العنصر النصي: var firstName = new String("Bill")
يرجى JS نصفي هذا الفصل، سنتعلم لماذا لا يجب إنشاء القيم النصية كعناصر.
عنصر عدد
عادةً، يتم إنشاء القيم العددية كقيم أساسية: var x = 456
لكن يمكنك أيضًا استخدام new
مفتاح الكلمة لإنشاء العنصر العددي: var x = new Number(456)
يرجى JS عددفي هذا الفصل، سنتعلم لماذا لا يجب إنشاء القيم العددية كعناصر.
عنصر منطقي
عادةً، يتم إنشاء القيم المنطقية كقيم أساسية: var x = false
لكن يمكنك أيضًا استخدام new
مفتاح الكلمة لإنشاء العنصر المنطقي: var x = new Boolean(false)
يرجى JS منطقيفي هذا الفصل، سنتعلم لماذا لا يجب إنشاء القيم المنطقية كعناصر.
- الصفحة السابقة مستطاعي JS للعناصر
- الصفحة التالية أصل JS للعناصر