Процедурный тип данных и функция eval( )

Пусть описаны следующие функции:

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>



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: