كيفية إنشاء فئة Mootools لاسم متغير
-
02-10-2019 - |
سؤال
النظر في هذا الرمز:
var Someclass = new Class();
var Anotherclass = new Class();
var classes = ['Someclass', 'Anotherclass'];
وأريد إنشاء فئة موتوول مع اسم ديناميكي. بالطبع يمكنني أن أفعل ذلك عن طريق eval:
eval('var obj = new ' + classes[0] + '(params);');
لكنني لا أعتقد أنه حل جيد. كيف تفعل هذا بطريقة "مناسبة"؟ ربما شيء مثل:
var obj = ObjectFactory(classes[0], params);
المحلول
استخدم ال تدوين قوسين للإشارة إلى الفصل كسلسلة.
var object = new window['SomeClass']();
تمرير المعلمات بمنتظم.
var object = new window['SomeClass'](1, 2, "three");
بدلاً من إنشاء جميع الفئات على مستوى العالم ، استخدم كائنًا لتسمية المساحة.
var My = {
SomeClass: new Class(..),
OtherClass: new Class(..)
};
var object = new My['SomeClass']();
لا تنتمي إلى StackOverflow