UDACITY OBJECT JAVASCRIPT
إن كنا سنتحدث عن الكائنيات في الجافا سكربت ففي الاساس علينا معرفة مفهوم الكائن في الواقع ان تحدثنا عن شيء له كيان او يكون متواجد فبطبيعة الحال سيكون له موصفات تقبل ان يطبق عليها بعض الافعال ، مثال الصخرة لها موصفات مختلفة قد تكون خشنة لها عدة الوان لها احجام مختلفة ولديها كتلة ولها اسم معين من حيث تكوينها الجيولوجي وغير ذلك من الاوصاف التي تقبل التغير مثلا يمكن لعوامل الطبيعة ان تنحث الحجارة وايضا يمكن ان يتم نحتها من قبل الانسان فكل هذه العوامل التي تتدخل في الطبيعة يمكن وصفها بالفانكشنات او الوظيفيات
على العموم في البرمجة التي تدعم التوجه الكائني objective oriented دائما ما يتم تشبيه الكائنات بامور من ارض الواقع الى انها كائنيات متواجدة تسهل علينا برمجة تطبيقاتنا كالمعرف id وبعض الاوصاف التي قد تتعامل مع دوال مختلفة في تكبيقنا لكي يكون لكل كائن دوال تعنيه
هيكلة الكائن تكون كالتالي:
var Concorde = {type:"Plane", size:"medium", color:"white"};
أو يمكن كتابتها على الشكل التالي:
var Concorde = {
type:"Plane",
size:"medium",
color:"white"
};
ان اردت الاعلان عن كائن من نوع رقمي او سترينغ او منطقي دائما نستخدم new
var is_string = new String();
var is_number = new Number();
var is_boolean = new Boolean();
هناك طريقتين للدخول على خواص كائن
Concorde.type;
Concorde["type"];
ويمكن منادات اسلوب الكائن كالتالي:
var Concorde = {
type:"Plane",
size:"medium",
color:"white"
size_type: function(){
return this.size + " " + this.type;
}
};
//كود المنادات
Concorde.size_type();
يستوجب دائما منادتها بالاقواس
الان نتوجه الى شرح الكويزات :
Quiz: Umbrella (7-1)
في هذا الكويز لدينا حالتين الاولى اعطيت لنا كمثال :
var umbrella = {
color: "pink",
isOpen: false,
open: function() {
if (umbrella.isOpen === true) {
return "The umbrella is already opened!";
} else {
umbrella.isOpen = true;
return "Julia opens the umbrella!";
}
}
};
المطلوب هو اعطاء حالة معاكسة للحالة المقترحة بنفس الكودتقريبا وان يكون نفس الكائن umbrella لكن هذه المرة ستكون المضلة مغلقة
Quiz: Menu Items (7-2)
هذا الكويز بسيط جدا لقد طلب منك انشاء كائن باسم breakfast لهذا الكائن عدة خواص الاولى كالاسم name و الثمن price والمكونات على شكل مصفوفة ingredients الكود عبارة عن اسطر قليلة جدا لتمثيل وجبة الافطار
في هذا الكويز طلب منا بناء اسلوب للكائن لنبدا في الاساس بالمعطيات لدينا الكود التاليQuiz: Bank Accounts 1 (7-3)
var savingsAccount = {
balance: 1000,
interestRatePercent: 1,
deposit: function addMoney(amount) {
if (amount > 0) {
savingsAccount.balance += amount;
}
},
withdraw: function removeMoney(amount) {
var verifyBalance = savingsAccount.balance - amount;
if (amount > 0 && verifyBalance >= 0) {
savingsAccount.balance -= amount;
}
}
};
وعلينا اظافة اسلوب لطباعة الجملة التالية :
Welcome!
Your balance is currently $1000 and your interest rate is 1%.
بطبيعة الحال سنستخدم سترينغ داخلها /n ونستخرج balance و interestRatePercent كاسلوب للكائن
Quiz: Bank Accounts 2 (7-4)
في هذا الكويز سيتم اعطائك نفس الكود وانت ستختار ما هي الطريقة الافضل لمنادات الخواص لكي تصل الى الاساليب تبع الكائن هناك ثلاث اساليب صحيحة حاول اجادها مع العلم انه كل تكرار الاجابة الخاطئة يؤثر عالتقييم
var savingsAccount = {
balance: 1000,
interestRatePercent: 1,
deposit: function addMoney(amount) {
if (amount > 0) {
savingsAccount.balance += amount;
}
},
withdraw: function removeMoney(amount) {
var verifyBalance = savingsAccount.balance - amount;
if (amount > 0 && verifyBalance >= 0) {
savingsAccount.balance -= amount;
}
}
};
Quiz: Facebook Friends (7-5)
من الكويزات المفضلة لدي وهو تحويل الكائينة تبع سيستام الفيس بوك
المطلوب :
انشاء كائن باسم facebookProfile ، والاسم تبعك زائد مصفوفة من الرسائل ، وان يكون لديك اربع اساليب الاسلوب الاول postMessage(message)الاسلوب الثاني deleteMessage(index) الاسلوب الثالث addFriend() الاسلوب الرابع removeFriend()
بعد انشاء الكائن مباشرة ننتقل الى الاساليب افضل طريقة لاضافة بوست هي عبر فانكشن نستغل الفانشن لاضافة بوست او رسالة يمكنك البدا بما تريد لنقوم بعملية push للاراي جتى نضيفها ضمن الكائن بعدها طلب منك حدف عنصر من المصفوفة سيكون علينا استخدام splice هذا يفيذنا انه علينا ان لا ننسى دروسنا السابقة فالبرمجة كل درس يكمل التالي الان يبقى لنا فقط اضافة صديق ايضا باستخدام الفانكش ثم ازالته في الاضافة نستخدم الزائد وفي الحدف نستخدم الناقص
Quiz: Donuts Revisited (7-6)
قد تبدو هذا الكويز مربك بعض الشيء لكن لنشرحه خطوة خطوة
دئما ما نبدا بالمعطيات ، لدينا الكائن donuts لديه عدة مصفوفات
{ type: "Jelly", cost: 1.22 },
{ type: "Chocolate", cost: 2.45 },
{ type: "Cider", cost: 1.59 },
{ type: "Boston Cream", cost: 5.99 }
علينا استخدام اسلوب forEach الخاص بالمصفوفات لوضعها في حلقة مفرغة وتعني لكل عضو التالي ////
ثم علينا ان نضرب في الحسبان ان المخرج للبرنامج يكون كالتالي
Jelly donuts cost $1.22 each
Chocolate donuts cost $2.45 each
Cider donuts cost $1.59 each
Boston Cream donuts cost $5.99 each
الطرقة المثلى هي استخدام فانكشن بعد تطبيق forEach على الكائن donuts في الفانكشن لدينا خاصيتين في المصفوفات وهي cost و type وبما اننا نستخدم forEach فانها ستمر على المصفوفات بالكامل داخل الكائن عند استدعائهما في الاسلوب donut.costو donut.type ملحوظة استخدمت donut كبرام للفانكشن يمكنك استخدام اي اسم تريده اخي الكريم
الى هنا نصل الى نهاية شرح الجافاسكربت ليوداستي بالتمني النجاح والتوفيق لهذه الدفعة الرائعة والمتميزة

0 تعليقات