Основы Web-инжиниринга. Часть 1. Громов Ю.Ю - 114 стр.

UptoLike

test1
test2
test3
test4
При непосредственном кодировании пришлось бы написать пять строк кода.
4.11.2. Функция-объект
У любого типа данных JavaScript существует объектовая "обертка" – Wrapper, которая позволяет применять методы ти-
пов данных к переменным и литералам, а также получать значения их свойств. Например, длина строки символов определя-
ется свойством length. Аналогичная "обертка" есть и у функцийобъект Function.
Например, увидеть значение функции можно не только при помощи метода valueOf(), но и используя метод
toString():
function f_name(x,y)
{
return x-y;
}
document.write(f_name.toString()+"<br>");
Результат распечатки:
function f_name(x,y) { return x-y; }
Свойства функции доступны для программиста только тогда, когда они вызываются внутри функции. При этом обычно
программисты имеют дело с массивом аргументов функции (arguments[]), его длиной (length), именем функции, вы-
звавшей данную функцию (caller) и прототипом (prototype).
Рассмотрим пример использования списка аргументов функции и его длину:
function my_sort()
{
a = new Array(my_sort.arguments.length);
for(i=0;i<my_sort.arguments.length;i++)
a[i] = my_sort.arguments[i];
b = a.sort();
return b;
}
b = my_sort(9,5,7,3,2)
for(i=0;i<b.length;i++)
document.write("b["+i+"]="+b[i]+"<br>");
Результат исполнения:
b[0]=2
b[1]=3
b[2]=5
b[3]=7
b[4]=9
Если функция может быть вызвана из других функций, то в этом случае используется свойство caller:
function slave()
{
document.write(slave.caller+"");
return slave.caller;
}
function master1()
{
slave();
}
function master2()
{
slave();
}
...
master1();
master2();
Результат исполнения двух последних строк:
function master1() { slave(); }
function master2() { slave(); }
Еще одним свойством объекта Function является prototype, но это общее свойство всех объектов, поэтому и об-
суждать его мы будем в контексте типа данных Object. Упомянем только о конструкторе объекта Function:
f = new Function(arg_1,...,arg_n, body)