الكائنات في Javascript
أول شيء يجب معرفته هو أنه لا وجود لمفهوم class في javascript، أي أننا لا نكتب أولا كلاس يكون بمثابة ال model، ثم ننشئ instances من هذه الكلاس. بل ننشئ مباشرة الكائنات.
كيفية إنشاء كائن:
هناك طريقتان لإنشاء كائن، إما باستعمال object literal أو باستعمال constructor function
object literal
عند إنشاء كائن باستعمال object literal، فإننا نقوم بتعريف الكائن، وتحديد خصائصه، وتهيئتها، ثم نعطي الكائن الناتج إلى متغير.
لنفترض الكود التالي
var aPerson = {
name: "Issam",
age: 100,
speak: function(speech) {
alert(speech);
}
}هنا حصلنا على كائن إسمه aPerson، يحتوي على 2 poperties هما name و age، و method هي speak.
كما هو واضح في الكود، فإننا نستعمل الفاصلة "," للتفريق بين خصائص الكائن. كما نستعمل النقطتين ":" بدل "=" لكي نحدد قيمة كل خاصبة.
لاسترجاع قيمة إحدى خصائص الكائن، name مثلا، نكتب إسم الكائن متبوعا بنقطة، ثم إسم ال property
var x = aPerson.name;
وننادي على الطريقة speak كالتالي
aPerson.speak("Javascript is great!!");constructor function
هنا نقوم بكتابة function تكون بمثابة ال constructor، وعندما نريد إنشاء كائن، ننادي على هذه ال function باستعمال new
function Person(name, age) {
this.name = name;
this.age = age;
this.speak = function(speech) {
alert(name + " said " + speech);
}
}في المثال أعلاه، قمنا بكتابة constructor ينتظر 2 arguments، ثم ننشئ 2 properties ونعطيها قيمة ال arguments، ثم نضيف ال method speak. كل كائن ننشئه بهذا ال constructor سيحتوي على ال properties name & age، بالإضافة لل method speak، لأننا استعملنا this الذي يشير إلى الكائن الحالي الذي يتم إنشائه.
إنشاء كائن باستعمال ال constructor أعلاه يكون كالتالي:
var person1 = new Person("Issam", 100);
var person2 = new Person("herch", 100);
person1.speak();
person2.speak();التعديل على هيكل الكائنات
في javascript يمكننا تعديل هيكل كائن ما حتى بعد إنشائه، بإضافة properties أو methods جديدة.
مثلا لو أردنا إضافة الخاصية profession إلى الكائن person1، يكفي عمل التالي
person1.profession = "Developer";
هذا التغيير سينطبق فقط على الكائن person1، أما person2 فما يزال على حالته.