سؤال

في Actionscript 3 ، لماذا يعيد GetDefinitionByName () كائنًا عندما تقول المستندات:

إرجاع مرجع إلى كائن الفئة من الفئة المحددة بواسطة المعلمة الاسم.

بناءً على ذلك ، أود أن أستنتج أن الكائن الذي تم إرجاعه يجب أن يكون الفصل بدلاً من الكائن. هل يمكن لأحد أن ينيرني لماذا هذا ليس هو الحال؟

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

المحلول

يمكن لـ GetDefinitionByName أيضًا إرجاع وظيفة ، مثل getDefinitionByName ('flash.utils.getDefinitionByName'). يعمل هذا فقط على وظائف مستوى المساحة ، على الرغم من ذلك ، وليس طرق الفئة الثابتة.

نصائح أخرى

على الرغم من توقيع الطريقة ، فإن getDefinitionByName يعود فصل. أعتقد أن التوقيع المضلل يرجع إلى الطريقة الموجودة قبل كائن الفئة (عند استخدامه لإرجاع مثيل كائن مجهول/ممتد).

ربما اعتبر Adobe أن هذه الوظيفة قد تُرجع قيمًا مختلفة في إصدار مستقبلي من Flash Player. على سبيل المثال ، تم استخدام ecmascript ، المعيار الذي يستند إليه ActionScript Function الكائنات ذات النماذج الأولية كأساس للكائنات الشبيهة بالفئة. أثناء مناقشات أحدث إصدارات معايير ECMASCRIPT ، كانت هناك فصول قائمة على "التجميد" القائمة على الوظائف في وقت التشغيل لجعلها في شيء مثل وقت الترجمة Class أشياء. ماذا لو كنت تستطيع أيضًا تحديد اسم تعريف لهم؟ هل هم في الواقع من النوع Class في هذه المرحلة ، أم أنها لا تزال أو الكتابة Function؟ ربما في وقت لاحق ، في رأيي. يمكن تعميم كل من مراجع "الفئة" و "الوظيفة" على أنها Object, ، بحيث يكون نوع الإرجاع منطقيًا في هذا السياق.

ملاحظة: هذا التفسير هو تكهنات بحتة بناءً على ما قرأته في مواصفات ecmascript wiki ومدونات مختلف أعضاء اللجنة.

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