Пусть описаны следующие функции:
function f1(x)
{return Math.pow(x, 3)-1}
function f2(x)
{return Math.pow(x-1, 2)+1}
Во многих языках программирования разрешается рассматривать функции f1, f2 как процедурные константы, а в программе описать переменную процедурного типа, значение которой во время выполнения программы может меняться. Такие переменные связываются во время выполнения программы с разными процедурами. Процедурные константы и переменные можно использовать в качестве фактических параметров.
Идея единства данных и подпрограмм занимает одно из основных мест в объектно-ориентированном программировании. В языке JavaScript идея процедурных типов данных реализована с помощью функции eval. Функция eval получает в качестве параметра строку. Если строка представляет собой выражение языка JavaScript,то вычисляется ее значение, которое возвращается как результат функции eval.
Пример: написать сценарий, который определяет значение функции, задаваемой пользователем, в некоторой указанной точке. Функция, точка и вычисленное значение задаются в текстовых полях формы.
|
|
Листинг:
<HTML>
<HEAD>
<TITLE>Нахождение значения функции в заданной точке</TITLE>
<SCRIPT>
function valfunc (fs, point)
{var x=Number(point)
var y=eval(fs)
return y
}
</SCRIPT>
</HEAD>
<BODY>
<h4>Нахождение значения функции в заданной точке</h4>
<FORM name="form1">
<pre>[2]
Введите функцию:<input type="text" size=30 name="func"><hr>
Введите значение x:<input type="text" size=8 name="poin"><hr>
<input type="button" value="Вычислить" onClick="form1.res.value=valfunc(form1.func.value,form1.poin.value)"> <hr>
Значение функции в заданной точке: <input type="text" size=8 name="res"> <hr>
<input type="reset" value="Отменить" >
</pre>
</FORM>
</BODY>
</HTML>