Давайте сначала посмотрим на функцию JS
Функция JavaScript eval()
Определение и использование
Функция eval() оценивает строку и выполняет внутри нее код JavaScript.
грамматика
оценка (строка)
Описание параметра
требуется строка. Строка для оценки, содержащая выражение JavaScript для оценки или оператор для выполнения.
возвращаемое значение
Значение, полученное путем оценки строки (если есть).
иллюстрировать
Этот метод принимает в качестве параметров только необработанные строки. Если строковый параметр не является необработанной строкой, метод вернет результат без изменений. Поэтому, пожалуйста, не передавайте объекты String в качестве параметров функции eval().
Реализации ECMAScript допускают выдачу исключения EvalError при попытке переопределить свойство eval или назначить метод eval() другому свойству и вызвать его через это свойство.
Бросать
Если в параметрах нет допустимых выражений или операторов, выдается исключение SyntaxError.
Если eval() вызывается незаконно, генерируется исключение EvalError.
Если код Javascript, переданный в eval(), генерирует исключение, eval() передаст исключение вызывающей стороне.
Советы и примечания
Совет: Хотя функция eval() очень мощная, на практике она используется редко.
Пример
Пример 1
В этом примере мы применим eval() к нескольким строкам и посмотрим, какие результаты будут возвращены:
Скопируйте код кода следующим образом:
<тип сценария="текст/javascript">
eval("x=10;y=20;document.write(x*y)")
document.write(оценка("2+2"))
варкс=10
document.write(оценка(x+17))
</скрипт>
Выход:
200
4
27
Пример 2
Посмотрите, что возвращает eval() в других случаях:
Скопируйте код кода следующим образом:
eval("2+3") // возвращаем 5
var myeval = eval; // может быть выброшено исключение EvalError
myeval("2+3"); // может быть выброшено исключение EvalError
Вы можете использовать следующий код, чтобы проверить, являются ли параметры eval() допустимыми:
Скопируйте код кода следующим образом:
пытаться {
alert("Результат:" + eval(prompt("Введите выражение:","")));
}
улов (исключение) {
предупреждение (исключение);
}
Первый метод — использовать eval в js.
Ниже приведен пример, написанный мной.
Скопируйте код кода следующим образом:
вызов("шоумсг");
вызов функции (имя функции) {
eval("this."+имя_функции+"()");
}
функция шоумсг(){
Оповещение("Успех");
}
eval может автоматически распознать склеенную вами строку как метод и вызвать ее.
Но и недостатки тоже огромны. Представьте, что кто-то может вызвать любой из ваших методов, изменив имя метода, которым вы его вызываете.
Второй метод в основном используется как самоопределяемый метод.
Главным образом потому, что второй метод требует особого способа записи
Скопируйте код кода следующим образом:
вызов функции (имя_функции) {
showmsgs["showmsg"]();
}
вар showmsgs = { showmsg: function () {
Оповещение("Успех");
}
}
вызов("шоумсг");