جافا سكريبت: تحويل السلسلة إلى قيمة المتغير المحدد مسبقا

StackOverflow https://stackoverflow.com/questions/1199241

سؤال

لدي كائن JavaScript يبدو وكأنه ما يلي:

venue = function(map, dataSet) {
    // set some constants
    this.VENUE_ID = 0;
    this.VENUE_NAME = 1;
    this.VENUE_CITY = 2;

    this.filterBy = function(field, value) {
        ...
        var filterValue = 'parent.VENUE_' + field;
    }
}

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

كيف أتحول filterValue متغير في قيمة ثابت يمثل؟

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

المحلول

هذا لا علاقة له بالنطاق المتغير.

var filterValue = this['VENUE_' + field];

ستفعل.

نصائح أخرى

جافا سكريبت ليس لديه مفهوم "الوالد". وأعتقد أنك مربكة النطاق والسياق. إذا كتبت هذه الطريقة باسم Var Flimby ()، يجب عليك الوصول إليها في "نطاق" مختلف. ولكن باستخدام "هذا"، فأنت تبقى في نفس الكائن كما كتب. لذلك كل ما كتبته هو في السياق "هذا".

جرب هذا:

var filterValue = this['VENUE_' + field];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top