ملخص
ما الذي نتحدث عنه عندما نتحدث عن البرمجة الموجهة للكائنات؟
نتحدث أولاً عن بعض المفاهيم: الكائنات ، الفصول ، التغليف ، الميراث ، تعدد الأشكال.
الكائنات والفئات هي أساس الموجهة نحو الكائن ، والتوراء والميراث وتعدد الأشكال هي الميزات الرئيسية الثلاث للبرمجة الموجهة للكائنات.
يوفر JavaScript كائنات ولكنه يفتقر إلى الفصول ، ولا يمكنه تحديد فئة مثل C#.
ومع ذلك ، فإن وظائف وظيفة JavaScript مرنة للغاية ، أحدها هو المُنشئ ، والذي يمكنه تنفيذ "فئات" بالاشتراك مع المنشآت وكائنات النموذج الأولي.
مفاهيم الكائنات والفئات
هدف
"الكائن" هو مفهوم مهم للغاية في البرمجة الموجهة للكائنات. الكائن هو وصف لـ "شيء" (شخص ما أو شيء من هذا القبيل).
يأتي الناس والأشياء من الحياة الحقيقية ، وفهمنا للعالم الحقيقي هو فهمنا للناس والأشياء.
في مجال البرمجة ، يعد الكود مجردة للأشخاص العاديين ، وتطبيق الكود هو حل مشاكل العالم الحقيقي بشكل أفضل.
خلال مراحل التحليل والتصميم ، يمكن أن يعكس مفهوم "الكائن" مشاكل في العالم الحقيقي بشكل أفضل.
على العكس ، يحتوي الرمز على بعض المنطق ، والذي يستخدم لوصف العمل. العمل يحتوي على بعض المعرفة التجارية. يتم تلخيص المعرفة التجارية من خلال فهم وتحليل العالم الحقيقي. تتكون هذه المشكلات من "أشياء" في العالم الحقيقي.
تحتوي الكائنات على ميزات وسلوكيات. من حيث OOP ، فإن الميزات هي سمات للكائنات ، والسلوكيات هي طرق الكائنات.
عطوف
في العالم الحقيقي ، يمكن تجميع أشياء مماثلة وفقًا لمعايير معينة. على سبيل المثال ، يتم تقسيم "الطيور الطنانة" و "النسور" إلى الطيور. الطيور ليست كائنات محددة. إنها مفهوم يلخصه الأشخاص بعد تحليل الخصائص والسلوكيات المماثلة على أساس طيور محددة مثل "الطيور الطنانة" و "النسور". الفئة تعادل قالب ، ويمكننا إنشاء كائنات محددة مختلفة بناءً على هذا القالب.
في C#، يمكننا تحديد طائر.
] }}
على الرغم من أن JavaScript هي لغة برمجة موجهة نحو الكائنات ، إلا أنها لا توفر دعمًا للبناء للفئة.
في JavaScript ، يعتمد كل شيء على الأشياء. حتى "النموذج الأولي" الذي سنتحدث عنه لاحقًا هي كائنات. يتم تنفيذ الميراث وإعادة استخدام JavaScript من خلال النماذج الأولية.
ومع ذلك ، يمكن للدمج بين البنائين وكائنات النموذج الأولي تنفيذ "فئات" JavaScript.
مُنشئ
في السابق ، استخدمنا مجموعة جديدة () لإنشاء صفيف واستخدمنا كائنًا جديدًا () لإنشاء كائن. Array () و Object () هما مُنشئان مدمجان في JavaScript. على الرغم من أن JavaScript لا يوفر فصولًا ، إلا أنه يمكننا فهم المصفوفة والكائن كمفهوم لـ "الفئات".
تجدر الإشارة إلى أن "فئة" جافا سكريبت تنفذها المنشئ.
تحديد المنشئ
المُنشئون هي أيضًا وظائف ، ولا يوجد فرق في بناء الجملة بين تعريف المنشئين والوظائف الأخرى.
الفرق الوحيد هو أن الحرف الأول من المُنشئ يجب أن يتم رسملة ، وهو أيضًا مواصفات برمجة JavaScript.
يحدد ما يلي مُنشئ الشخص () ، والذي يمكننا فهمه كطبقة الشخص.
وظيفة person () {console.log ('أنا keepfool.') ؛}يتم تعريف "الفئة" ومؤسسة JavaScript في نفس الوقت. عند تعريف "الفصل" في JavaScript ، يتم تعريف المنشئ في نفس الوقت.
باستخدام المنشآت
يستخدم JavaScript الفئات بنفس طريقة C#، مع الكلمة الرئيسية الجديدة متبوعة بالمشارك.
var p = شخص جديد () ؛
تحديد السمات والأساليب
الآن بعد أن حددنا فئة الشخص ، يمكننا إضافة بعض الخصائص والأساليب إلى فئة الشخص.
تحديد السمات
عند الحديث عن كائنات JavaScript ، نتحدث عن إعداد الخصائص والوصول إلى الكائنات.
يعرض هذا الرمز طريقتان لتحديد خصائص الكائن:
var cat = {color: 'black'} ؛ cat.name = 'tom' ؛ console.log (cat.color) ؛ console.log (cat.name) ؛استخدم هذا لتحديد السمات
طريقة تعريف السمة لفئة JavaScript مختلفة إلى حد ما. استخدم هذه الكلمة الرئيسية لتحديد السمات في المنشئ:
وظيفة الشخص (الاسم) {this.name = name ؛}• يحدد السطر الأول من الكود فئة الشخص ويحدد المنشئ.
• يحدد السطر الثاني من الكود سمة الاسم.
إنشاء واستخدام الكائنات
الأسطران التاليان من التعليمات البرمجية إنشاء كائنات فئة شخصين
var p1 = شخص جديد ('James') ؛ var p2 = شخص جديد ('cury') ؛الإخراج p1.name و p2.name في وحدة التحكم في الكروم
P1 و P2 هما كائنان مختلفان ، لن يؤثر تعديل p1.name على p2.name.
p1.name = 'LeBron James' ؛
تحديد الطريقة
أولاً ، دعنا نميز المصطلحات "الوظيفة" و "الطريقة". "الوظيفة" هي وحدة مستقلة ، في حين أن "الطريقة" تعتمد على وجود الفصل كموضوع.
استخدم هذا لتحديد الطرق
في JavaScript ، تتمثل طريقة الفئة في تحديد الوظيفة في المُنشئ ، واستخدام هذه الكلمة الرئيسية لتحديد الطريقة في المنشئ:
الوظيفة الشخص (الاسم) {// تحديد السمة this.name = name ؛ // تحديد الطريقة this.sayhello = function () {return 'hello ، أنا' + this.name ؛}}كيفية استخدام
استدعاء طريقة sayhello () لكائنات p1 و p2 على التوالي في وحدة التحكم في الكروم
سمة مُنشئ
عند إنشاء كائن ، يتم تعيين خاصية خاصة تلقائيًا للكائن بواسطة JavaScript ، وهذه الخاصية هي خاصية المنشئ.
أدخل p1.constructor في وحدة التحكم Chrome ويمكنك أن ترى أن خاصية مُنشئ كائن P1 تشير إلى وظيفة.
انظر إلى محتوى هذه الوظيفة ، أليس هذا هو الشخص () مُنشئ؟
هذا يعني أنه يمكننا أيضًا إنشاء كائنات من خلال خاصية p1.constructor ،
var p3 = new p1.constructor ('Steve Nash') ؛يشرح سطر الكود هذا الجملة: "لا يهمني كيفية إنشاء كائن P1 ، لكنني أريد إنشاء كائن آخر مثل P1!"
باستخدام مشغل مثيل OF في وحدة التحكم Chrome ، يمكنك أن ترى أن P1 و P2 و P3 كلها مثيلات من فئة الشخص
أيضًا ، عندما نقوم بإنشاء الكائن بطريقة {} ، يتم استدعاء مُنشئ الكائن () بالفعل.
var o = {} ؛يعلن هذا السطر من الكود كائن. على الرغم من أننا لا نضع أي خصائص وطرق ، إلا أن محرك JavaScript يعين سمة المنشئ بشكل افتراضي.
يشير o.constructor إلى مُنشئ الكائن () ، [native code] يوضح أن الكائن () هو وظيفة مدمجة في JavaScript.
كائن النموذج الأولي
في JavaScript ، عند تحديد وظيفة ، سيكون للوظيفة سمة النموذج الأولي ، والمنشئ ليس استثناءً.
يوضح الشكل التالي أن خاصية النموذج الأولي للشخص () مُنشئ هي كائن ينتمي إلى الوظيفة ، ونطلق على هذه الخاصية كائن النموذج الأولي.
من منظور فئة الشخص ، يمكننا أيضًا أن نفهم أن سمة النموذج الأولي تنتمي إلى فئة الشخص.
في الوقت نفسه ، لا يحتوي مثيل فئة الشخص على سمة نموذج أولي. النمط p1.prototype في الشكل أعلاه غير محدد ، مما يعني أن سمة النموذج الأولي مشاركة ، والتي تشبه إلى حد ما السمة الثابتة في C#.
وضع النموذج الأولي
نظرًا لأن النموذج الأولي هو كائن ، يمكنك إضافة خصائص وطرق إليه.
لا يختلف تحديد الخصائص والأساليب على خاصية النموذج الأولي للدالة عن خصائص وأساليب الكائنات العادية.
يحدد الكود التالي خصائص وطرق الشخص. النموذج.
الوظيفة الشخص (الاسم) {this.name = name ؛ this.sayhello = function () {return 'hello ، im' + this.name ؛}} // تحديد الخصائص والأساليب على النموذج الأولي للمشارك. شخص (جيمس ") ؛باستخدام النموذج الأولي
خصائص وأساليب النموذج الأولي المحدد شخصيًا. يمكن استخدام النمط المحدد مباشرة بواسطة مثيلات فئة الشخص ولا يزال يستخدم في شكل object.property .
تجدر الإشارة إلى أن name و sayHello() هي حالات تابعة لفئة الشخص ، في حين أن height run() هي حالات لا تنتمي إلى فئة الشخص.
نصائح: يمكنك التحقق مما إذا كان الكائن يحتوي على خاصية أو طريقة معينة من خلال طريقة HasownProperty.
سمات النموذج الأولي
يمكن لمثال فئة الشخص استخدام كل من الخصائص في فئة الشخص والخصائص الشخصية.
إذن ما هو الفرق بين خصائص فئة الشخص وخصائص الشخص.
أولاً ، يمكننا فهم الخصائص والأساليب في فئة الشخص كـ "خصائص مثيل".
منذ مشاركة النموذج الأولي ، يمكننا أن نفهم الخصائص والأساليب في النموذج الأولي كـ "خصائص مشتركة".
ينعكس الفرق بين "سمات المثيل" و "السمات المشتركة" بشكل أساسي في الأداء.
في كل مرة يتم إنشاء مثيل شخص ، سيتم إنشاء نسخة من سمة الاسم وطريقة sayhello () ، وستشارك سمة الارتفاع وطريقة Run () نسخة من جميع الحالات.
وهذا هو الحال ، وهذا يعني أنه يمكن ذكر طريقة sayhello () في النموذج الأولي.
بالإضافة إلى ذلك ، قد يكون ارتفاع مثيل الشخص مختلفًا مختلفًا ، لذلك يجب أن يكون من المعقول وضعه في فئة الشخص.
وظيفة الشخص (الاسم ، الارتفاع) {this.name = name ؛ this.height = height ؛} person.prototype.sayhello = function () {return 'hello ، أنا' + this.name + '، طولي هو' + this.height + 'cm.' ؛ الشخص ("جيمس" ، 203) ؛ var p2 = شخص جديد ('cury' ، 190) ؛ملخص تنفيذ الفصل
لا يوجد لدى JavaScript فئات ، ولكن يمكن للمصممون تنفيذ "فصول".
وفقًا لمواصفات برمجة JavaScript ، يجب أن يتم رسملة الحرف الأول من المنشئ.
يتم تعريف خصائص وطرق "الفئة" في المُنشئ في هذا.
عند إنشاء كائن ، يقوم JavaScript بتعيين سمة المنشئ للكائن. سمة المنشئ هي إشارة إلى وظيفة مُنشئ الكائن.
تحتوي الوظيفة بالفعل على سمة النموذج الأولي عند تعريفها ، وسمة النموذج الأولي هي أيضًا كائن.
تتم مشاركة النموذج الأولي ، ويمكن استخدام الخصائص والأساليب المحددة على النموذج الأولي بواسطة مثيلات "الفصل".
إذا كان يمكن تعريف الخصائص أو الطرق على النموذج الأولي ، فلا تحددها على المُنشئين. استخدام النموذج الأولي يمكن أن يقلل من النفقات العامة للذاكرة.
المقالة أعلاه حول JavaScript OOP - تفاصيل تنفيذ الفصل هي كل المحتوى الذي شاركته معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.