أصل الأشياء في JavaScript

جميع أجسام JavaScript يستفيدون من التوريث الأصلي للحصول على الخصائص والطرق.

في الفصل السابق، تعلمنا كيفية استخدامبناء الجسم:

مثال

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

جربوا بأنفسكم

لقد أدركنا، أنتلا يمكنإضافة خاصية جديدة إلى بناء الجسم الموجود:

مثال

Person.nationality = "English";

جربوا بأنفسكم

إذا كنت بحاجة إلى إضافة خاصية جديدة إلى بناء الجسم، يجب عليك إضافتها إلى دالة بناء الجسم:

مثال

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

جربوا بأنفسكم

التوريث الأصلي

جميع أجسام JavaScript يستفيدون من التوريث الأصلي للحصول على الخصائص والطرق.

جسم التاريخ يرث من Date.prototype. جسم المجموعة يرث من Array.prototype. جسم Person يرث من Person.prototype.

Object.prototype يقع في أعلى سلسلة التوريث الأصلي:

جسم التاريخ، جسم المجموعة، وجسم Person ينتمي إلى Object.prototype.

إضافة خصائص وطرق إلى الجسم

في بعض الأحيان، قد ترغب في إضافة خصائص جديدة (أو طرق) إلى جميع الأجسام الحالية من النوع المحدد.

في بعض الأحيان، قد ترغب في إضافة خصائص جديدة (أو طرق) للمؤسس (constructor) للعناصر.

الاستخدام prototype الخصائص

يسمح لك prototype الخاص بـ JavaScript أيضًا بإضافة خصائص جديدة للمؤسس (constructor):

مثال

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";

جربوا بأنفسكم

يسمح لك أيضًا بتحديد طرق جديدة للمؤسس (constructor) للعناصر في prototype JavaScript:

مثال

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
    return this.firstName + " " + this.lastName;
};

جربوا بأنفسكم

الرجاء عدم تعديلبأيديكمالنموذج. لا تقم أبداً بتعديل نموذج JavaScript القياسي.