UDACITY OBJECT JAVASCRIPT

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 كبرام للفانكشن يمكنك استخدام اي اسم تريده اخي الكريم


الى هنا نصل الى نهاية شرح الجافاسكربت ليوداستي بالتمني النجاح والتوفيق لهذه الدفعة الرائعة والمتميزة


Post a Comment

0 Comments