جزء الكائن
نوع الكائن
الكائن عبارة عن مجموعة غير مرتبة يمكنها تخزين الكائنات من أي نوع ، ويرث جميع الكائنات الأخرى من هذا الكائن.
هناك نوعان من إنشاء الكائنات ، أحدهما هو استخدام المشغل الجديد والآخر هو تدوين حرفي.
1. قم بإنشاء كائن باستخدام المشغل الجديد
var obj = new Object () ؛ // انتبه إلى الرسملة ، يمكنك أيضًا كتابتها مباشرة ككائن ()
لاحظ أن إنشاء كائن جديد من خلال طريقة الكائن الجديد () يعادل الطريقة الحرفية OBJ = {}.
2. إنشاء باستخدام الطريقة الحرفية:
var obj = {name: 'TrigKit4' ، العمر: 21} ؛ // من الأفضل إضافة Semicolonعند الإعلان عن كائن يستخدم الحرفي ، لا يتم استدعاء مُنشئ الكائن () (باستثناء FF)
Object.prototype كائن
جميع المنشئين لديهم سمة نموذجية تشير إلى كائن النموذج الأولي.
Object.prototype.print = function () {console.log (this)} ؛ var obj = new Object () ؛ obj.print () // Objectمثيل OBJ يرث مباشرة خصائص وطرق الكائن.
1. الكائنات هي مجرد بيانات خاصة. الكائنات لها خصائص وطرق. JavaScript هي لغة موجهة نحو الكائن ، لكن JavaScript لا تستخدم الفئات. يعتمد JavaScript على [النموذج الأولي] [1] ، وليس على أساس الفصل.
2. السمة: إنه متغير تابع لكائن معين. الطريقة: إنها وظيفة لا يمكن استدعاؤها إلا بواسطة كائن معين.
3.js كائنات هي مجموعة من الخصائص والأساليب. الطريقة هي وظيفة ، وهي عضو في كائن. السمة هي قيمة أو مجموعة من القيم (في شكل صفيف أو كائن) وهو عضو في كائن.
يعتمد كائن 4.JS على وظيفة المنشئ. عند استخدام وظيفة المنشئ لإنشاء كائن جديد ، يمكن القول أنه يتم إنشاء كائن جديد. الخصائص هي متغيرات داخل وظيفة المنشئ.
الكائنات التي تم إنشاء مثيل لها باستخدام وظائف المنشئ:
Cat = New Animal () ؛
JavaScript هي لغة قائمة على الكائن ، وكل ما تواجهه هو كائن تقريبًا. ومع ذلك ، فهي ليست لغة برمجة حقيقية موجهة نحو الكائن (OOP) لأنه لا يوجد فئة (فئة) في بناء الجملة.
<script type = "text/javaScript"> // الكائن عبارة عن مجموعة من أزواج الاسم/القيمة var browser = {// الكائن هو الاسم مرفقة بأقواس مجعد: "Firefox" ، kernel: "gecko"الكائنات (OBJCT) هي مجموعة من الخصائص ، كل خاصية تتكون من "أزواج الاسم/القيمة". يحدد JS أيضًا كائنًا خاصًا - صفيف ، وهو مجموعة من القيم المرقمة.
تحدد JS أيضًا كائنًا خاصًا - دالة ، وظيفة هي كائن له رمز قابل للتنفيذ مرتبط به. ينفذ الرمز عن طريق استدعاء الوظيفة وإرجاع نتيجة العملية.
لا يوجد فئة في JS ، ولكن الأمر يتطلب اسمًا جديدًا بعنوان "كائن النموذج الأولي" ، لذلك "كائن === Obstotype Object" ، راجع: طريقة كتابة فئة JavaScript (I)
2. الفرق والاتصال بين الفئات (كائنات النموذج الأولي) والكائنات (مثيلات)
1. الفصول (كائنات النموذج الأولي) مجردة ، مفاهيمية ، تمثل نوعًا من الأشياء.
2. الكائن ملموس وعملي ويمثل شيئًا محددًا.
3. الفصل (كائن النموذج الأولي) هو قالب لمثيلات الكائن ، وحالات الكائن هي أفراد من الفصل.
الاعتقاد الخاطئ الشائع هو أن القيمة الحرفية للرقم ليست كائنًا. هذا بسبب وجود خطأ في محلل JavaScript الذي يحاول تحليل مشغل النقطة كجزء من القيمة الاسمية العددية النقطة العائمة.
هناك العديد من الحلول لجعل القيمة الحرفية للرقم تبدو وكأنها كائن.
2..TOSTRING () ؛ // يمكن تحليل النقطة الثانية بشكل طبيعي
2.ToString () ؛ // انتبه إلى المساحات قبل النقطة
(2) .ToString () ؛ // 2 محسوب أولاً
حذف السمات
الطريقة الوحيدة لحذف خاصية هي استخدام مشغل الحذف ؛ إن تعيين العقار على غير محدد أو فارغ لا يحذف حقًا العقار ، ولكنه ببساطة يزيل الارتباط بين الممتلكات والقيمة.
ثلاث ميزات رئيسية من جافا سكريبت موجهة نحو الكائنات
التغليف: لا يتم النظر في أي تنفيذ داخلي ، يتم النظر فقط في الاستخدام الوظيفي
الميراث: ورث كائن جديد من كائن موجود
تعدد الأشكال: يشير ما يسمى تعدد الأشكال إلى حالات متعددة تشير إلى المواقف المختلفة.
1. التغليف
يعني التغليف تجميع القواسم المشتركة (بما في ذلك السمات والسلوكيات) للأشياء التي تنتمي إلى نفس الفئة إلى فئة لسهولة الاستخدام. على سبيل المثال ، يمكن تغليف الشيء البشري بالطرق التالية:
الناس{
العمر (السمة 1)
الارتفاع (السمة 2)
الجنس (السمة ثلاثة)
افعل الأشياء (واحدة من السلوكيات)
المشي (السلوك 2)
التحدث (الفصل 3)
}
فوائد التغليف:
يحمي التغليف سلامة البيانات الداخلية ؛
التغليف يجعل إعادة إنشاء الكائنات أسهل ؛
إضعاف الاقتران بين الوحدات النمطية وتحسين قابلية إعادة استخدام الكائنات ؛
يساعد في تجنب تعارضات مساحة الاسم.
انظر المثال التالي:
<script type = "text/javaScript"> var boy = {} ؛ // إنشاء كائن فارغ boy.name = "Xiao Ming" ؛ // تعيين boy.age = 12 وفقًا لخصائص كائن النموذج الأولي ، var girl = {} ؛ Girl.Name = "Xiaohong" ؛ girl.age = 10 ؛ </script>هذا هو أبسط تغليف ، ويغلف سمتين في كائن واحد. ومع ذلك ، فإن طريقة الكتابة هذه لها عيوب. الأول هو أنه إذا قمت بإنشاء المزيد من الحالات ، فسيكون من الصعب جدًا الكتابة ؛ والآخر هو أنه لا توجد طريقة لمعرفة ما إذا كان هناك أي صلة بين المثيل والنموذج الأولي.
وضع المنشئ
لحل مشكلة توليد مثيلات من كائنات النموذج الأولي ، يوفر JavaScript نمط مُنشئ.
ما يسمى "المنشئ" هو في الواقع وظيفة عادية ، ولكن يتم استخدام هذا المتغير داخليًا. يمكن أن يؤدي استخدام المشغل الجديد للمنشئ إنشاء مثيل ، وسيكون هذا المتغير مرتبطًا بكائن المثيل.
على سبيل المثال ، يمكن كتابة كائنات النموذج الأولي للصبي والفتاة مثل هذا الآن:
<script type = "text/javaScript"> وظيفة الوظيفة (الاسم ، العمر) {this.name = name ؛ this.age = العمر ؛ } </script>يمكننا الآن إنشاء كائنات مثيل.
<script type = "text/javaScript"> var boy = new شخص ("Xiao Ming" ، 12) ؛ var girl = شخص جديد ("Xiao Hong" ، 10) ؛ تنبيه (boy.name) ؛ // Xiao Ming Alert (boy.age) ؛ // 12 </script>في هذا الوقت ، سيحتوي Boy and Girl تلقائيًا على سمة مُنشئ تشير إلى مُنشئهما.
تنبيه (boy.constructor == person) ؛ //حقيقي
ALERT (girl.constructor) ؛ // إخراج السلسلة الكاملة من رمز المنشئ ، جربها بنفسك
ينص JavaScript النموذج الأولي على أن كل مُنشئ لديه سمة نموذجية تشير إلى كائن آخر. سيتم ورث جميع خصائص وطرق هذا الكائن بواسطة مثيلات من المنشئ.
هذا يعني أنه يمكننا تحديد تلك الخصائص والأساليب التي لم تتغير مباشرة على كائن النموذج الأولي.
<script type = "text/javaScript"> وظيفة الوظيفة (الاسم ، العمر) {this.name = name ؛ هذا.ثم ، قم بإنشاء المثيل:
<script type = "text/javaScript"> var boy = new شخص ("Xiao Ming" ، "12") ؛ var girl = new شخص ("Xiao Hong" ، "10") ؛ تنبيه (boy.type) ؛ // human boy.eat () ؛ // eat </script>في هذا الوقت ، فإن النوع الذي يعرضه أساليب الأكل () لجميع الحالات هو في الواقع نفس عنوان الذاكرة ، مما يشير إلى كائن النموذج الأولي ، وبالتالي تحسين كفاءة التشغيل.
ALERT (boy.eat == girl.eat) ؛ //حقيقي
خاصية النموذج الأولي عبارة عن خاصية مدمجة تحدد وظيفة المنشئ التي يمتدها الكائن.
يضيف الرمز التالي حجم سمة جديد إلى وظيفة منشئ الحيوانات ، وهي السمة النموذجية لكائن CAT. باستخدام خصائص النموذج الأولي ، يمكن لجميع الكائنات تمديد وظائف منشئ الحيوانات الوصول إلى خاصية الحجم
Cat = New Animal ("Feline" ، "Meow" ، "Walk/Run") ؛ cat.prototype.size = "fat" ؛في هذه الحالة ، فإن سمة الحجم لجميع الكائنات الحيوانية هي "الدهون". يتراجع النموذج الأولي إلى مثيل جديد للكائن. نظرًا لأنه لا يزال كائنًا ، يمكن إضافة سمات جديدة إلى الكائن. تمامًا مثل Style هو كائن في JavaScript ، يمكنك أيضًا الاستمرار في إضافة خصائص بعد الأناقة.
<script type = "text/javaScript">/*حدد فئة الشخص*/وظيفة الشخص (_name ، _age ، _salary) {// السمة العامة لفئة الشخص ، يتم تعريف السمة العامة للفئة على أنها: "هذا. اسم" this.name = _name ؛ // السمة الخاصة لفئة الشخص ، يتم تعريف السمة الخاصة للفئة على أنها: "اسم سمة var" var age = _age ؛ var salary = _salary ؛ // تحديد الطريقة العامة (الطريقة المميزة) لفئة الشخص ، يتم تعريف الطريقة العامة للفئة على النحو التالي: "this.functionName = function () {.....عندما يبحث كائن ما عن خاصية معينة ، فإنه سيجتدى أولاً خصائصه الخاصة. إذا لم يكن الأمر كذلك ، فستستمر في البحث عن الكائن المشار إليه بواسطة [[النموذج الأولي]]. إذا لم يكن الأمر كذلك ، فسيستمر البحث عن الكائن المشار إليه بواسطة [[النموذج الأولي]]. [[النموذج الأولي]] ، وهكذا حتى [[النموذج الأولي]] ...
ببساطة ، هو حفظ مرجع إلى كائن آخر من خلال [[النموذج الأولي]] ، والبحث في السمات من خلال هذا المرجع. هذه هي سلسلة النموذج الأولي.
كائن فارغ
وظيفة JS تعيين القيم الفارغة للمتغيرات هي:
إن تعيين مؤشر فارغ يجعل من السهل فهم أن هذا المتغير مستعد لتخزين الكائنات. من المريح أيضًا ضبط الخطأ الخاطئ
كائن النافذة العالمية
أي وظيفة أو متغير عالمي في JavaScript هو خاصية للنافذة.
الكائن الذاتي هو بالضبط نفس كائن النافذة. عادة ما تستخدم الذات لتأكيد أنها في الشكل الحالي.
الكائنات الرئيسية الرئيسية للنافذة هي كما يلي:
كائن مستند JavaScript
جافا سكريبت إطارات كائن
كائن تاريخ JavaScript
كائن موقع JavaScript
جافا سكريبت كائن Navigator
كائن شاشة JavaScript
عدة طرق شائعة
طريقة () الطريقة: إرجاع القيمة الأصلية للكائن المحدد
تقوم طريقة split () بتقسيم السلسلة إلى صفيف سلسلة وإرجاع هذه الصفيف.
تقوم طريقة indexof () بإرجاع الحدوث الأول لقيمة سلسلة محددة في السلسلة.
يتم استخدام طريقة Sundring () لاستخراج الأحرف في سلسلة بين اثنين من المشتركين المحددة.
تستخلص طريقة Substr () العدد المحدد من السلاسل بدءًا من موضع StartPos من السلسلة.
يتم استخدام طريقة Join () لوضع جميع العناصر في الصفيف في سلسلة.
arrayobject.join (محدد)
يتم استخدام طريقة عكس () لعكس ترتيب العناصر في صفيف.
تقوم طريقة Slice () بإرجاع العنصر المحدد من صفيف موجود.
كائن حرفي
الحرفيات الكائنات هي العمليات المستخدمة لإنشاء عدد كبير من الخصائص ، على النحو التالي:
<script type = "text/javaScript"> var company = {name: "Microsoft" ، Ages: 39 ، الموظفون: 99000 ، الرئيس التنفيذي: "Nadella"} ؛ </script>تجدر الإشارة هنا إلى أن السمات وقيم السمات مفصولة بواسطة كولونز (:) ؛ يتم فصل سمات متعددة بواسطة الفواصل (،). يمكن للكائن الحرفي أيضًا تحديد الطرق. فقط اكتب وظيفة على سمات هذا الكائن. هذه وظيفة مجهولة. تحتاج فقط إلى كتابة اسم الطريقة () للاتصال به.
<script type = "text/javaScript"> var dog = {name: "husky" ، العمر: 2 ، Run: function () {return "123" ؛غلاف نوع القيمة الأساسية
هناك خمسة أنواع قيمة أساسية في JS: الرقم ، السلسلة ، منطقية ، لاغية وغير محددة. باستثناء الفارغ وغير المحددة ، فإن الثلاثة الأخرى لديها ما يسمى كائنات التغليف الأساسية. يمكن استخدام عدد المُنشئين المدمج () و string () و boolean () لإنشاء كائنات غلاف.
var num = new number (10) ؛ console.log (typeof num) ؛ // Object Object () method object () // إرجاع كائن كائن فارغ (غير محدد) // إرجاع كائن كائن فارغ (null) // إرجاع كائن فارغ كائن (1) // مكافئ للرقم الجديد (1) كائن ('foo') كائن منطقي (صحيح) ([]) // إرجاع كائن الصفيف الأصلي ({}) // إرجاع كائن الكائن الأصلي (function () {}) // إرجاع الوظيفة الأصليةجزء الصفيف
1. كائن array
كائن المصفوفة: يوفر الدعم لإنشاء صفائف من أي نوع بيانات.
arrayobj = صفيف جديد ()
arrayobj = صفيف جديد ([الحجم])
arrayobj = صفيف جديد ([element0 [، element1 [، ... [، elementn]]]]))
التعريف: var arr = [2،3،45،6] ؛ var arr = صفيف جديد (2،4،5،7)
لا يوجد فرق في التعريف بين الاثنين ، [] له أداء عالي لأن الرمز قصير.
استخدم Array and Object Ifitals: var atest = [] ؛ عند إنشاء المصفوفات ، يعد استخدام Array Ifitals اختيارًا جيدًا ؛ وبالمثل ، يمكن أيضًا استخدام حرفيات الكائنات لتوفير المساحة. الخطان التاليان متساويان ، لكن استخدم الكائن الحرفي ليكون أقصر:
var otest = كائن جديد ؛ // حاول عدم استخدام var otest = {} ؛ // الخيار الأفضل ، أو var 0test = [] ؛اجتياز من أجل تحقيق أفضل أداء للعبور ، يوصى باستخدام حلقة كلاسيكية.
var list = [1 ، 2 ، 3 ، 4 ، 5 ، ...... 100000000] ؛ لـ (var i = 0 ، l = list.length ؛ i <l ؛ i ++) {console.log (list [i]) ؛}يحتوي الرمز أعلاه على معالجة ، وهو تخزين طول المصفوفة من خلال l = list.length.
مُنشئ الصفيف
نظرًا لأن مُنشئ Array غامض بعض الشيء عندما يتعلق الأمر بكيفية التعامل مع الوسائط ، يوصى دائمًا باستخدام بناء الجملة الحرفي للمصفوفات - [] - لإنشاء المصفوفات.
لذلك ، سيكون الرمز التالي مربكًا:
صفيف جديد (3 ، 4 ، 5) ؛ // النتيجة: [3 ، 4 ، 5]
صفيف جديد (3) // النتيجة: [] ، طول هذا الصفيف هو 3
حاول تجنب استخدام منشئات الصفيف لإنشاء صفائف جديدة. يوصى باستخدام بناء الجملة الحرفي للمصفوفات. فهي أقصر وأكثر إيجازا ، وبالتالي زيادة قابلية قراءة الكود.
خصائص صفيف الصفيف
ثلاث خصائص من صفيف الصفيف: سمة الطول ، سمة النموذج الأولي ، سمة مُنشئ
1. السمة الطول
تمثل سمة الطول طول الصفيف ، أي عدد العناصر الموجودة فيه. نظرًا لأن فهرس الصفيف يبدأ دائمًا من 0 ، فإن الحدود العلوية والسفلية للمصفوفة هي: 0 وطول 1 على التوالي. على عكس معظم اللغات الأخرى ، فإن خاصية طول صفائف JavaScript قابلة للتغيير ، مما يتطلب اهتمامًا خاصًا.
2. السمة النمط
إرجاع مرجع إلى النموذج الأولي للكائن. سمة النموذج الأولي شائع في الكائن.
بالنسبة لكائنات صفيف الصفيف ، استخدم المثال التالي لتوضيح الغرض من سمة النموذج الأولي.
أضف طريقة إلى كائن المصفوفة لإرجاع قيمة العنصر القصوى في الصفيف. للقيام بذلك ، أعلن وظيفة ، وأضفها إلى Array.prototype ، واستخدامها.
دالة array_max () {var i ، max = this [0] ؛ لـ (i = 1 ؛ i <this.length ؛ i ++) {if (max <this [i]) max = this [i] ؛ } إرجاع ماكس ؛ } array.prototype.max = array_max ؛ var x = صفيف جديد (1،2،3،4،5،6) ؛ var y = x.max () ؛بعد تنفيذ هذا الرمز ، يحفظ Y القيمة القصوى في المصفوفة X ، أو 6.
3. سمة البناء
وظيفة تمثل إنشاء كائن. الوصف: سمة المنشئ هي عضو في جميع الكائنات ذات النموذج الأولي. وهي تشمل جميع الكائنات الأصلية JScript باستثناء الكائنات العالمية والرياضيات. تحتوي خاصية المنشئ على إشارة إلى الوظيفة التي تبني مثيل كائن معين.
على سبيل المثال:
x = سلسلة جديدة ("مرحبا") ؛ if (x.constructor == string) // العملية (الشرط صحيح). // أو وظيفة myfunc {// func. } y = جديد myfunc ؛إذا (y.constructor == myfunc) // العملية (الشرط صحيح).
للمصفوفات:
y = صفيف جديد () ؛
طريقة كائن الصفيف
طريقة () طريقة
قواعد
arrayobject.sort (sortby)
sortby اختياري. حدد ترتيب الفرز. يجب أن تكون وظيفة.
var arr = [11،2،28،4،5،1] ؛
console.log (arr.sort ()) ؛ // return [1 ، 11 ، 2 ، 28 ، 4 ، 5]
لماذا لا يتم ترتيب 11 و 28 هنا بالترتيب؟ وذلك لأن الفرز بدون معلمات يتم فرزه في ترتيب ترميز الأحرف.
لذا ، ماذا لو كنا نرغب في فرز عناصر الصفيف من صغيرة إلى كبيرة؟ انظر إلى الكود التالي:
var arr = [11،2،28،4،5،1] ؛ console.log (arr.sort (function (a ، b) {return ab ؛ // return [1 ، 2 ، 4 ، 5 ، 11 ، 28]})) ؛إذا كنت ترغب في الفرز وفقًا لمعايير أخرى ، فأنت بحاجة إلى توفير وظيفة مقارنة تقارن قيمتين ثم إرجاع رقم يوضح الترتيب النسبي للقيمتين. يجب أن تحتوي وظيفة المقارنة على معلمتين A و B ، وقيمة الإرجاع الخاصة بها على النحو التالي:
إذا كان A أقل من B ، فيجب أن تظهر A قبل B في الصفيف المصنف ، ثم يتم إرجاع قيمة أقل من 0.
إذا كان A يساوي B ، فالتراجع 0.
إذا كانت A أكبر من B ، يتم إرجاع قيمة أكبر من 0.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.