جزء كائن JavaScript
1: الجزء الأساسي
1. جميع المتغيرات في JavaScript هي كائنات ، مع استثناءين فارغين وغير محددة.
2. jScript يدعم أربعة أنواع من الكائنات: الكائنات الداخلية ، والكائنات التي تم إنشاؤها ، والكائنات التي يتم إجراؤها للمضيف (جميع كائنات BOM و DOM هي كائنات مضيفة.) ، والكائنات النشطة (المكونات الخارجية).
3. توفر Microsoft JScript 11 كائنات داخلية (أو "مدمجة"). إنها صفيف ، منطقية ، تاريخ ، وظيفة ، عالمية ، الرياضيات ، العدد ، الكائن ، regexp ، الخطأ ، وكائنات السلسلة.
4. الكائنات هي مجرد بيانات خاصة. الكائنات لها خصائص وطرق. JavaScript هي لغة موجهة نحو الكائن ، لكن JavaScript لا تستخدم الفئات. يعتمد JavaScript على النموذج الأولي ، وليس القائم على الفصل.
5. السمة: هو متغير تابع لكائن معين. الطريقة: إنها وظيفة لا يمكن استدعاؤها إلا بواسطة كائن معين.
6. كائنات JScript هي مجموعات من الخصائص والأساليب. الطريقة هي وظيفة ، وهي عضو في كائن. السمة هي قيمة أو مجموعة من القيم (في شكل صفيف أو كائن) وهو عضو في كائن.
7. تعتمد كائنات JavaScript على وظائف المنشئ. عند استخدام وظائف المنشئ لإنشاء كائن جديد ، يمكن القول أنه يتم إنشاء كائن جديد. الخصائص هي متغيرات داخل وظيفة المنشئ.
الكائنات التي تم إنشاء مثيل لها باستخدام وظائف المنشئ:
Cat = New Animal () ؛
8. JavaScript هي لغة قائمة على الكائن ، وكل ما تواجهه هو كائن. ومع ذلك ، فهي ليست لغة برمجة حقيقية موجهة نحو الكائن (OOP) لأنه لا يوجد فئة (فئة) في بناء الجملة.
نسخة الكود كما يلي:
<script type = "text/javaScript">
// الكائن عبارة عن مجموعة من أزواج الاسم/القيمة
متصفح var = {// كائن محاط بأقواس مجعد
الاسم: "Firefox" ،
نواة: "جيكو"
} ؛
</script>
نسخة الكود كما يلي:
// الوصول إلى خصائص الكائن من خلال نقطة (.) أو "[]"
Browser.name // "Firefox"
متصفح ["kernel"] // "Gecko"
الكائنات (OBJCT) هي مجموعة من الخصائص ، كل خاصية تتكون من "أزواج الاسم/القيمة". يحدد JS أيضًا كائنًا خاصًا - صفيف ، وهو مجموعة من القيم المرقمة. تحدد JS أيضًا كائن خاص - دالة ، الوظيفة هي كائن له رمز قابل للتنفيذ مرتبط به. ينفذ الرمز عن طريق استدعاء الوظيفة وإرجاع نتيجة العملية.
توضيح المفهوم:
"الكائن المستند إلى الكائن = الموجهة إلى الكائن" في JS 4. لا يوجد فئة (فئة) في JS ، ولكن الأمر يتطلب اسمًا جديدًا بعنوان "كائن النموذج الأولي" ، لذلك "class = Obstotype Object"
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 = شخص جديد ("Xiao Ming" ، "12") ؛
var girl = شخص جديد ("Xiaohong" ، "10") ؛
تنبيه (boy.name) ؛ // شياو مينغ
تنبيه (boy.age) ؛ // 12
</script>
في هذا الوقت ، سيحتوي Boy and Girl تلقائيًا على سمة مُنشئ تشير إلى مُنشئهما.
نسخة الكود كما يلي:
تنبيه (boy.constructor == person) ؛ //حقيقي
تنبيه (girl.constructor == شخص) ؛ //حقيقي
ينص JavaScript النموذج الأولي على أن كل مُنشئ لديه سمة نموذجية تشير إلى كائن آخر. سيتم مورث جميع خصائص وطرق هذا الكائن بواسطة مثيل المنشئ.
هذا يعني أنه يمكننا تحديد تلك الخصائص والأساليب التي لم تتغير مباشرة على كائن النموذج الأولي.
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة الشخص (الاسم ، العمر) {
this.name = name ؛
this.age = العمر ؛
}
person.protype.type = "Human" ؛
person.protype.eat = function () {
تنبيه ("أكل الأرز") ؛
}
</script>
ثم ، قم بإنشاء المثيل:
نسخة الكود كما يلي:
<script type = "text/javaScript">
var boy = شخص جديد ("Xiao Ming" ، "12") ؛
var girl = شخص جديد ("Xiaohong" ، "10") ؛
تنبيه (boy.type) ؛ // الإنسان
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 () {......}"
this.show = function () {
التنبيه ("Age ="+Age+"/T"+"Salary ="+Salary) ؛ // الوصول إلى الخصائص الخاصة للفئة في الطريقة العامة
}
</script>
عندما يبحث كائن ما عن خاصية معينة ، فإنه سيجتدى أولاً خصائصه الخاصة. إذا لم يكن الأمر كذلك ، فستستمر في البحث عن الكائن المشار إليه بواسطة [[النموذج الأولي]]. إذا لم يكن الأمر كذلك ، فسيستمر البحث عن الكائن المشار إليه بواسطة [[النموذج الأولي]]. [[النموذج الأولي]] ، وهكذا حتى [[النموذج الأولي]] ...
ببساطة ، هو حفظ مرجع إلى كائن آخر من خلال [[النموذج الأولي]] ، والبحث في السمات من خلال هذا المرجع. هذه هي سلسلة النموذج الأولي.
كائن النافذة العالمية
أي وظيفة أو متغير عالمي في JavaScript هو خاصية للنافذة.
الكائن الذاتي هو بالضبط نفس كائن النافذة. عادة ما تستخدم الذات لتأكيد أنها في الشكل الحالي.
الكائنات الرئيسية الرئيسية للنافذة هي كما يلي:
كائن مستند JavaScript
جافا سكريبت إطارات كائن
كائن تاريخ JavaScript
كائن موقع JavaScript
جافا سكريبت كائن Navigator
كائن شاشة JavaScript
عدة طرق شائعة
طريقة () الطريقة: إرجاع القيمة الأصلية للكائن المحدد
تقوم طريقة split () بتقسيم السلسلة إلى صفيف سلسلة وإرجاع هذه الصفيف.
تقوم طريقة indexof () بإرجاع الحدوث الأول لقيمة سلسلة محددة في السلسلة.
يتم استخدام طريقة Sundring () لاستخراج الأحرف في سلسلة بين اثنين من المشتركين المحددة.
تستخلص طريقة Substr () العدد المحدد من السلاسل بدءًا من موضع StartPos من السلسلة.
يتم استخدام طريقة Join () لوضع جميع العناصر في الصفيف في سلسلة.
arrayobject.join (محدد)
يتم استخدام طريقة عكس () لعكس ترتيب العناصر في صفيف.
تقوم طريقة Slice () بإرجاع العنصر المحدد من صفيف موجود.
كائن حرفي
الكائنات الحرفية هي عمليات تستخدم لإنشاء عدد كبير من السمات.
نسخة الكود كما يلي:
<script type = "text/javaScript">
شركة var = {
الاسم: "Microsoft" ،
الأعمار: 39 ،
الموظفون: 99000 ،
الرئيس التنفيذي: "ناديلا"
} ؛
</script>
تجدر الإشارة هنا إلى أن السمات وقيم السمات مفصولة بواسطة كولونز (:) ؛ يتم فصل سمات متعددة بواسطة الفواصل (،). يمكن للكائن الحرفي أيضًا تحديد الطرق. فقط اكتب وظيفة على سمات هذا الكائن. هذه وظيفة مجهولة. تحتاج فقط إلى كتابة اسم الطريقة () للاتصال به.
نسخة الكود كما يلي:
<script type = "text/javaScript">
var dog = {
الاسم: "Husky" ،
العمر: 2 ،
تشغيل: function () {
العودة "123" ؛
}
}
ALERT (dog.run ()) ؛ // إذا قمت بإدخال Dog.run ، فإن رمز جزء الوظيفة بعد أن يظهر
</script>
جزء مجموعة JavaScript
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 (قائمة [i]) ؛
}
يحتوي الرمز أعلاه على معالجة ، وهو تخزين طول المصفوفة من خلال l = list.length.
مُنشئ الصفيف
نظرًا لأن مُنشئ Array غامض بعض الشيء عندما يتعلق الأمر بكيفية التعامل مع الوسائط ، يوصى دائمًا باستخدام بناء الجملة الحرفي للمصفوفات - [] - لإنشاء المصفوفات.
لذلك ، سيكون الرمز التالي مربكًا:
صفيف جديد (3 ، 4 ، 5) ؛ // النتيجة: [3 ، 4 ، 5]
صفيف جديد (3) // النتيجة: [] ، طول هذا الصفيف هو 3
حاول تجنب استخدام منشئات الصفيف لإنشاء صفائف جديدة. يوصى باستخدام بناء الجملة الحرفي للمصفوفات. فهي أقصر وأكثر إيجازا ، وبالتالي زيادة قابلية قراءة الكود.
خصائص صفيف الصفيف
3 خصائص صفيف الصفيف: سمة الطول ، سمة النموذج الأولي ، سمة مُنشئ
1. السمة الطول
تمثل سمة الطول طول الصفيف ، أي عدد العناصر الموجودة فيه. نظرًا لأن فهرس الصفيف يبدأ دائمًا من 0 ، فإن الحدود العلوية والسفلية للمصفوفة هي: 0 وطول 1 على التوالي. على عكس معظم اللغات الأخرى ، فإن خاصية طول صفائف JavaScript قابلة للتغيير ، مما يتطلب اهتمامًا خاصًا.
2. السمة النمط
إرجاع مرجع إلى النموذج الأولي للكائن. سمة النموذج الأولي شائع في الكائن.
بالنسبة لكائنات صفيف الصفيف ، استخدم المثال التالي لتوضيح الغرض من سمة النموذج الأولي.
أضف طريقة إلى كائن المصفوفة لإرجاع قيمة العنصر القصوى في الصفيف. لإنجاز هذا ، أعلن وظيفة ، وإضافتها إلى Array.prototype ، واستخدامها.
نسخة الكود كما يلي:
وظيفة Array_Max ()
{
var i ، max = this [0] ؛
لـ (i = 1 ؛ i <this.length ؛ i ++)
{
إذا (كحد أقصى <هذا [i])
كحد أقصى = هذا [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 {
// وظيفة الجسم.
}
y = جديد myfunc ؛
إذا (y.constructor == myfunc) // العملية (الشرط صحيح).
للمصفوفات:
y = صفيف جديد () ؛
طريقة الصفيف:
إرفاق مجموعة من خرائط العقل: