Какое значение переменной class
передается в функцию? Я сделаю обоснованное предположение, что это будет что-то вроде education
? Это верно?
В этом случае первое eval()
будет таким:
var condition=eval('educationFlag');
и второй будет такой:
eval('educationFlag'=1);
Второй сбой, потому что часть =1
отсутствует в строке. Это короткий ответ, который напрямую решает вашу проблему.
Тем не менее, ответ лучше заключается в том, что eval()
- неправильная вещь. Вы никогда не должны использовать eval()
для такого рода вещей. Поскольку educationFlag
является глобальной переменной, вы можете обращаться к ней через объект window
как элемент массива: это означает, что вы можете делать то же самое, не используя рискованный eval()
вообще.
Вы можете ссылаться на это так: window['educationFlag']
Следовательно, ваши eval()
строки можно заменить следующим образом:
var condition=window[class+'Flag'];
и
window[class+'Flag']=1;
Надеюсь, это поможет.