سؤال

لذلك كنت أقرأ كثيرًا اليوم حول أداء البيان وقابلية القراءة وأشياء من هذا القبيل ، لكنني ما زلت غير متأكد مما إذا كان ينبغي علي أو لا ينبغي أن أستخدم البيان مع AS3.

يبدو أن استخدام العبارة مع إنشاء VAR المحلي الذي يحمل المرجع. هل يمكن لأي شخص تقديم معلومات مفصلة حول هذا الموضوع؟

هل كانت مفيدة؟

المحلول

حسنًا ، من المعايير الشخصية الخاصة بي ، ظهر بيان () في الواقع ليكون أبطأ قليلاً. هذه ليست مشكلة كبيرة إلا إذا كنت تحاول الضغط على كل أوقية أخيرة من الأداء خارج فيلمك. يمكن قول الشيء نفسه للقيام به للحلقات ضد المتغيرات بدلاً من الثوابت ، أو أثناء الحلقات مقابل الحلقات. ما لم تقم بتركيب هذه الحلقات في الكثير من التكرارات ، فأنت لا تحتاج حقًا إلى القلق بها.

بالنسبة لقدرة الكود ، أعتقد أنه يجعل نظرة أنظف باستخدام (). كل ذلك يعود إلى نمط الترميز. المرة الوحيدة التي أستخدم فيها البيان مع () هي مع وجود هدف معروف. دعنا نقول أن لديك معالج أحداث الماوس الخاص بك يحدد الكائنات على النقر ، وتعيينها على أنها CurrentObject. يمكنك بعد ذلك الحصول على وظيفة تقوم بشيء مثل

with(currentObject)
{
 x = 100;
 y = 100;
 alpha = 0.5;
}

بالتأكيد يمكنك القيام بذلك طرقًا أخرى ، لكن كما قلت. يتعلق الأمر بأسلوب الترميز. المدخرات الوحيدة التي أراها حقًا باستخدام هذه الطريقة هي ضربات المفاتيح المتختصرة مقابل القيام CurrentObject.x = 100 ؛ CurrentObject.y = 100 ؛

نصائح أخرى

أعتقد ، أكبر مشكلة with أنه لم يتم فحص وقت التجميع. سيتم اكتشاف أي أخطاء فقط في وقت التشغيل. لكنه يساعد على تنظيف التعليمات البرمجية ، وأنا أحب ذلك إلى حد ما. فقط تعرف على ما تفعله ، وقد يكون مفيدًا.

with هو السكر النحوي النقي.

من الناحية الأداء ، من الواضح أنه ليس تحسينًا. لقد قمت بتشغيل حلقة عدة مرات ويبدو أنها أبطأ من الوصول إلى السمات المعتادة.

من حيث قابلية القراءة ، لست متأكدًا من وجود مكسب. أنا في الواقع أفضل استخدام منح اقتراح سكينر. ولكن هناك حالة قد تكون مفيدة: with (event.target as MovieClip), ، لأنه سيتطلب إعلانًا متغيرًا متوسطًا خلاف ذلك.

الخلاصة: في معظم الحالات ، لا تستخدمه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top