Функции Javascript

Язык программирования не может обойтись без механизма многократного использования кода программы. Такой механизм обеспечивается процедурами или функциями. В JavaScript функция выступает в качестве одного из основных типов данных. Одновременно с этим в JavaScript определен класс объектов Function.

В общем случае любой объект JavaScript определяется через функцию. Для создания объекта используется конструктор, который в свою очередь вводится через Function. Таким образом, с функциями в JavaScript связаны следующие ключевые вопросы:

· функция как тип данных;

· функция как объект;

· функция как конструктор объектов.

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

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

function f(arg1,arg2,...)

{

/* тело функции */

}

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

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

// Будет выведено: Тип переменной f: function

Во-вторых, эта переменная, как и любая другая, имеет значение - свой исходный текст:

var i=5;

function f(a,b,c)

{

if (a>b) return c;

}

document.write('Значение переменной i: '+ i.valueOf());

// Будет выведено:

// Значение переменной i: 5

document.write('Значение переменной f:<BR>'+ f.valueOf());

// Будет выведено:

// Значение переменной f:

// function f(a,b,c)

// {

// if (a>b) return c;

// }

Как видим, метод valueOf() применим как к числовой переменной i, так и к переменной f, и возвращает их значение. Более того, значение переменной f можно присвоить другой переменной, тем самым создав "синоним" функции f:

function f(a,b,c)

{

if (a>b) return c;

else return c+8;

}

var g = f;

alert('Значение f(2,3,2): '+ f(2,3,2));

alert('Значение g(2,3,2): '+ g(2,3,2));

// Будет выведено:

// Значение f(2,3,2): 10

// Значение g(2,3,2): 10

Этим приемом удобно пользоваться для сокращения длины кода. Например, если нужно много раз вызвать методdocument.write(), то можно ввести переменную: var W = document.write (обратите внимание - без скобок!), а затем вызывать: W('<H1>Лекция</H1>').

Коль скоро функцию можно присвоить переменной, то ее можно передать и в качестве аргумента другой функции.

function kvadrat(a)

{ return a*a; }

function polinom(a,kvadrat)

{ return kvadrat(a)+a+5;}

alert(polinom(3,kvadrat));

// Будет выведено: 17


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



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