Введение в JavaScript

Функция — тип данных


Определяют функцию при помощи ключевого слова function:

function f_name(arg1,arg2,...) { /* function body */ }

Здесь следует обратить внимание на следующие моменты. Во-первых, function определяет переменную f_name. Эта переменная имеет тип "function":

document.write("Тип переменной f_name:"+ typeof(f_name));

Тип переменной f_name: function. Во-вторых, этой переменной присваивается значение:

document.write("Значение i:"+i.valueOf()); document.write("Значение f_name:"+ f_name.valueOf());

Значение переменной f_name: 10. Значение переменной f_name:function f_name(a) { if(a>=0) return true; else return false; }. В данном случае метод valueOf() применяется как к числовой переменной i, так и к f_name. По этой причине функции можно назначить синоним путем присваивания ее значения другой переменной:

function f_name(a) { if(a>=0) return true; else return false; } document.write("Значение переменной f_name:"+ f_name(1)+""); b = f_name; document.write("Значение переменной b:"+ b(1)+""); Значение переменной f_name:true Значение переменной b:true

Очевидно, что если функцию можно присвоить переменной, то ее можно передать и в качестве аргумента другой функции. Все это усиливается при использовании функции eval(), которая позволяет реализовать отложенное исполнение JavaScript-кода. Отложенное исполнение — это возможность изменения программы по ходу ее исполнения. Типичным использованием eval() является сокращение кода за счет генерации однотипных строк:

for(i=0;i<5;i++) { eval("document.write('test"+i+"<br>')"); }

Результат исполнения кода:

test0 test1 test2 test3 test4

При непосредственном кодировании пришлось бы написать пять строк кода. Данный подход использовался в разделе "Изменение картинки" для инициирования массивов картинок, имена которых построены по принципу индексации ячеек таблицы.



Содержание раздела