|    | 
СИ-БИ техника | КВ техника | УКВ техника | Радиоизмерения | Защита от TVI | Источники питания | Софт | Расчеты | Справочники
Главная arrow Программирование arrow Java arrow Работа с функциями  

Работа с функциями

Оглавление
Работа с функциями
Страница 2
Страница 2 из 2

Пожалуй, так будет даже нагляднее, особенно если дать элементам массива вразумительные строковые индексы.

Народ советует

Если для возврата значений из функций используются хэши, логично оформить индексы их элементов в виде псевдоконстант. (Псевдоконстанты JavaScript были описаны ранее.) Например:

var JSPS_SFARR_1 = "valuel"; var JSPS_SFARR_2 = "value2"; var JSPS._SFARR_3 = "value3";

А потом использовать для доступа к элементам хэша именно эти константы:

function someFunc() {

// Здесь помещаются выражения, вычисляющие нужные значения

// valuel, value2 и value3.

var arr = new Array();

arr[JSPS_SFARR_l] = valuel;

arr[JSPS_SFAKR_2] = value2;

arr[JSPS_SFARR_3] = value3;

return arr; } var a = someFunc(); var vl = a[JSPS_SFAKR_l]; var v2 = a[JSPS_SFARR_2]; var v3 = a[JSPS_SFAKR_3];

Решение 2

1.  Вычисляем в теле функции все нужные значения.

2.   Создаем в теле функции экземпляр объекта object.

3.  Помещаем вычисленные значения в свойства этого экземпляра.

4.   Возвращаем полученный экземпляр оператором return.

Извлечь вычисленные функцией значения можно, обратившись к свойствам возвращенного экземпляра объекта object.

Пример

Объявление функции, возвращающей несколько значений с помощью экземпляра объекта obj ect:

function someFunc() {

// Здесь помещаются выражения, вычисляющие нужные значения // valuel, value2 и value3.

var obj = new Object(); obj.valuel = valuel; obj.value2 = value2; obj.value3 = value3; return obj; }

Использование ее:

var о = someFunc() ; var vl = o.valuel; var v2 = o.value2; var v3 = o.value3;

Народ советует

Желающие могут даже создать особый объект, предназначенный специально для возврата из функции вычисленных ею значений. (Подробнее о создании объектов будет рассказано далее.)

function jspsSFReturnHolder(vl, v2, v3)

{

this.valuel = vl;

this.value2 = v2;

this.value3 = v3; } function someFunc() {

// Здесь помещаются выражения, вычисляющие нужные значения

// valuel, value2 и value3.

var obj = new j spsSFReturnHolder(valuel, value2, value3);

return obj; }

Решение 3

He столь изящное, как первые два, но используется, пожалуй, чаще всего.

1.  Создаем массив или экземпляр объекта object, который передается в функцию в качестве одного из параметров.

2.  В теле функции заносим вычисленные ею значения в этот массив или экземпляр объекта.

3.  После завершения работы функции извлекаем полученные значения из элементов массива или свойств экземпляра объекта.

При этом из функции вообще может не возвращаться никакое значение (имеется в виду возврат с помощью оператора return).

Пример

Объявление функции, возвращающей несколько значений в массиве, переданном ей в качестве параметра:

function someFunc(arr) {

// Здесь помещаются выражения, вычисляющие нужные значения // valuel, value2 и value3. arr[0] = valuel; arr[l] = value2; arr[2] = value3; }

Ее использование:

var a = new Array(); someFunc(a); var vl = a[0] ; var v2 = a[1]; var v3 = a[2] ;

Реализация статических переменных

Проблема

Локальные переменные, объявленные в теле функции, не сохраняют свои значения между вызовами этой функции. Но иногда бывает необходимо создать так называемую статическую переменную — локальную переменную, которая сохраняет свое значение между вызовами функции. Как это сделать?

Решение

Увы!.. JavaScript не предоставляет для этого стандартных средств. Нам придется объявить глобальную переменную и использовать ее в теле функции.

Пример

Приведенная далее функция сохраняет число своих вызовов в глобальной переменной counter. var counter = 0; function func4() {

counter++; }


« Пред. - След.


RLBN.ru - Электроника и компьютеры

0.1446
Hosted by uCoz