في JavaScript، أدوات الوصول إلى الخصائص هي آليات تسمح لك بالوصول إلى خصائص الكائن. هناك طريقتان أساسيتان للقيام بذلك: التدوين النقطي والتدوين بين قوسين.
التدوين النقطي هو الطريقة الأكثر شيوعًا للوصول إلى الخصائص. ما عليك سوى استخدام نقطة (.) متبوعة باسم الخاصية.
يكون التدوين بين قوسين مفيدًا عندما يكون اسم الخاصية ديناميكيًا أو ليس معرفًا صالحًا (على سبيل المثال، يحتوي على مسافات أو أحرف خاصة). يمكنك استخدام الأقواس المربعة ([]) وتمرير اسم الخاصية كسلسلة
توفر اللغة بناء الجملة المعروف باسم التدوين الحرفي للكائن لإنشاء الكائنات بسرعة. تتم الإشارة إلى القيم الحرفية للكائن بواسطة الأقواس المتعرجة. يقوم المثال التالي بإنشاء كائن فارغ بدون خصائص.
var animal = {};
داخل الأقواس المتعرجة، يتم تحديد الخصائص وقيمها كقائمة من أزواج المفاتيح/القيم.
يمكن أن تكون المفاتيح عبارة عن سلاسل أو معرفات، بينما يمكن أن تكون القيم أي تعبير صالح. يتم الفصل بين قائمة أزواج المفاتيح/القيمات بفواصل، مع الفصل بين كل مفتاح وقيمة بنقطتين.
يقوم المثال التالي بإنشاء كائن بثلاث خصائص باستخدام التدوين الحرفي.
الخاصية الأولى، الحيوان، تحمل الرقم واحد.
الخاصية الثانية، dolphin، يتم تحديدها باستخدام سلسلة، وتقوم أيضًا بتخزين قيمة سلسلة. الخاصية الثالثة، الثدييات، تقوم بتخزين كائن فارغ.
var animal = { dolphin: 1, "swim": "some string", mammal: { } };
تمت كتابة كل خاصية على سطر منفصل ووضع مسافة بادئة لها. كان من الممكن كتابة الكائن بأكمله على سطر واحد، ولكن الكود أكثر قابلية للقراءة بهذا التنسيق. وهذا ينطبق بشكل خاص على الكائنات ذات الخصائص المتعددة أو الكائنات المتداخلة.
الأول والأكثر شيوعًا يُعرف باسم التدوين النقطي.
ضمن التدوين النقطي، يتم الوصول إلى الخاصية عن طريق إعطاء اسم الكائن المضيف، متبوعًا بنقطة (أو نقطة)، متبوعة باسم الخاصية.
التدوين النقطي هو الطريقة الأكثر شيوعًا للوصول إلى الخصائص. ما عليك سوى استخدام نقطة (.) متبوعة باسم الخاصية. على سبيل المثال:
يوضح المثال التالي كيفية استخدام التدوين النقطي للقراءة من خاصية ما والكتابة إليها. إذا كان object.dolphin
في البداية كانت القيمة واحدة، ثم أصبحت قيمتها اثنين بعد تنفيذ هذا البيان.
animal.dolphin = animal.dolphin 1;
يُعرف بناء الجملة للوصول إلى خصائص الكائن باسم تدوين القوس. في التدوين بين القوسين، يتبع اسم الكائن مجموعة من الأقواس المربعة.
داخل الأقواس المربعة، يتم تحديد اسم الخاصية كسلسلة .
تمت إعادة كتابة المثال السابق للتدوين النقطي أدناه لاستخدام تدوين الأقواس. على الرغم من أن الكود قد يبدو مختلفًا، إلا أنه مكافئ وظيفيًا للمثال السابق.
object["dolphin"] = object["dolphin"] 1;
يعتبر الترميز بين قوسين أكثر تعبيرًا من الترميز النقطي لأنه يسمح للمتغير بتحديد اسم الخاصية بالكامل أو جزء منه .
هذا ممكن لأن مترجم جافا سكريبت يحول التعبير تلقائيًا داخل الأقواس المربعة إلى سلسلة، ثم يسترد الخاصية المقابلة.
يوضح المثال التالي كيف يمكن إنشاء أسماء الخصائص بسرعة باستخدام تدوين الأقواس. في المثال، تم إنشاء اسم الخاصية foo عن طريق ربط محتويات المتغير d بالسلسلة النصية "dolphin".
var d = "d"; object[d "dolphin"] = "bar";
يسمح أيضًا تدوين الأقواس لأسماء الخصائص أن تحتوي على أحرف محظورة في التدوين النقطي .
على سبيل المثال، العبارة التالية قانونية تمامًا بين قوسين. ومع ذلك، إذا حاولت إنشاء نفس اسم الخاصية بتدوين نقطي، فسوف تواجه خطأً في بناء الجملة.
object["!@#$%^&*()."] = true;
يمكن الوصول إلى خصائص الكائنات المتداخلة من خلال تسلسل المراجع النقطية و/أو الأقواس معًا.
على سبيل المثال، يحتوي الكائن التالي على كائن متداخل يسمى دولفين، والذي يحتوي على كائن آخر يسمى حيوان ثديي، وله خاصية تسمى سنوات والتي تحمل القيمة واحد.
var animal = { dolphin: { mammal: { years: 1 } } };
التعبيرات التالية تصل إلى الخاصية المتداخلة، السنوات. يستخدم التعبير الأول ترميز النقطة، بينما يستخدم التعبير الثاني ترميز الأقواس المربعة.
يجمع التعبير الثالث بين كلا الرمزين لتحقيق نفس النتيجة.
animal.dolphin.mammal.lungs; animal["dolphin"]["mammal"]["years"]; animal["dolphin"].mammal["years"];
يمكن أن تؤدي التعبيرات المشابهة لتلك الموضحة في المثال السابق إلى تدهور الأداء إذا تم استخدامها بشكل غير صحيح.
يستغرق تقييم كل تعبير نقطة أو قوس وقتًا.
إذا تم استخدام نفس الخاصية عدة مرات، فمن المنطقي الوصول إلى الخاصية مرة واحدة، ثم تخزين القيمة في متغير محلي لجميع الاستخدامات المستقبلية. يستخدم المثال التالي الشريط عدة مرات داخل الحلقة. ومع ذلك، بدلاً من إضاعة الوقت في حساب نفس القيمة مرارًا وتكرارًا، يتم تخزين الشريط في متغير محلي.
var years = animal.dolphin.mammal.years; var count = 0; for (var i = 0; iوظائف كأساليب
عندما يتم استخدام دالة كخاصية كائن، فإنها تسمى طريقة. مثل الخصائص، يمكن أيضًا تحديد الأساليب في التدوين الحرفي للكائن. يوضح المثال التالي كيفية تحقيق ذلك.
var animal = { sum: function(dolphin, years) { return dolphin years; } };يمكن أيضًا استدعاء الطرق باستخدام علامة النقطة والأقواس . المثال التالي
dolphin.sum(1, 2); دولفين["مجموع"](1, 2);
يستدعي طريقة sum() من المثال السابق باستخدام كلا الرمزين.
dolphin.sum(1, 2); dolphin["sum"](1, 2);إضافة الخصائص والأساليب
التدوين الحرفي للكائن مفيد في إنشاء كائنات جديدة، لكن لا يمكنه إضافة خصائص أو طرق إلى الكائنات الموجودة. لحسن الحظ،
يقوم المثال التالي بإنشاء
إضافة بيانات جديدة إلى كائن أمر بسيط مثل إنشاء بيان المهمة.كائن فارغ. تتم بعد ذلك إضافة خاصيتين، الدلفين والثدييات، وطريقة
، سنوات، باستخدام بيانات التعيين. لاحظ أن هذا المثال يستخدم التدوين النقطي
، ولكن التدوين بين قوسين سيعمل بنفس القدر أيضًا.
فار الحيوان = {}; حيوان دولفين = 1; Animal.mammal = null; الحيوان.سنوات = وظيفة () { إرجاع "عمري 5 سنوات ()"؛ };var animal = {}; animal.dolphin = 1; animal.mammal = null; animal.years = function() { return "I am 5 years()"; };الكائنات هي أنواع بيانات مركبة تم إنشاؤها من العناصر الأولية والكائنات الأخرى. يُشار عادةً إلى الكتل البرمجية الإنشائية للكائن باسم الحقول أو الخصائص. تُستخدم الخصائص لوصف بعض جوانب الكائن. على سبيل المثال، يمكن أن تصف الخاصية طول القائمة، أو لون الكلب، أو تاريخ ميلاد الشخص.لذا فإن بناء جملة كائن JavaScript
الترميز النقطي: يُستخدم عندما تكون أسماء الخصائص معرفات صالحة.
أمر بالغ الأهمية لفهمه، لأنه بمثابة أساس اللغة. حيث أنك تحتاج أولاً إلى فهم الكائنات قبل أن تتمكن من فهم البرمجة الموجهة للكائنات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3