Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Неименованные функции
 
 автор: coloboc66   (10.11.2009 в 10:27)   письмо автору
 
 

Для чего они нужны (когда в них возникает необходимость)? Можно ли в такую функцию передавать параметры?

  Ответить  
 
 автор: АЯ   (10.11.2009 в 11:15)   письмо автору
 
   для: coloboc66   (10.11.2009 в 10:27)
 

>"Для чего они нужны?"
Обычно их используют тогда, когда безымянные функции нужны одноразово и когда правила синтаксиса подразумевают использовать именно функции.

Например, метод sort ([function]), используемый без функции-параметра, сортирует массив, считая его элементы СТРОКАМИ.
Но можно в этот метод "воткнуть" нужную безымянную функцию, коя будет сортировать элементы, как ЧИСЛА:
<script>
var w = new Array (22, 3, 11, 2, 1);

//массив можно гарантированно задать числами, например так:
//var w = new Array (22 * 1, 3 * 1, 11 * 1, 2 * 1, 1 * 1);
//или так:
//var w = new Array (23 - 1, 4 - 1, 12 - 1, 3 - 1, 2 - 1);
//но метод sort () без аргумента-функции всё-равно воспринимает элементы СТРОКАМИ

alert (w.sort ()); //сортировка элементов как строк по возрастанию

alert (w.sort (function (x, y) {return (x - y)})); //сортировка элементов как чисел по возрастанию


//Замечу ещё, что используемую функцию в браузере MSIE можно поименовать для дальнейшего использования. Например, так:
alert (w.sort (function FFF (x, y) {return (y - x)}));
var z = new Array (33, 4, 22, 3, 2);
alert (z.sort (FFF));
//Интересно то, что при последующих вызовах передавать параметры уже не надо.
//И ещё интересно то, что в прочих браузерах (кроме MSIE) функция FFF () не будет определена.
</script>


>"Можно ли в такую функцию передавать параметры?"
Разумеется, можно. В вышеприведённом примере как раз параметры передаются.

  Ответить  
 
 автор: sl1p   (10.11.2009 в 11:16)   письмо автору
 
   для: coloboc66   (10.11.2009 в 10:27)
 

var f = function(par) {
    alert(par)
}

f('lol');

  Ответить  
 
 автор: АЯ   (10.11.2009 в 11:18)   письмо автору
 
   для: sl1p   (10.11.2009 в 11:16)
 

Неименованная функция... под именем f () :-))

  Ответить  
 
 автор: coloboc66   (10.11.2009 в 11:50)   письмо автору
 
   для: АЯ   (10.11.2009 в 11:18)
 

Последний код не работает, отладчик пишет:
f is not a function

  Ответить  
 
 автор: АЯ   (10.11.2009 в 11:59)   письмо автору
 
   для: coloboc66   (10.11.2009 в 11:50)
 

Хреновый у вас отладчик:
<script>
var f = function(par) {
    alert(par)
}

f('Работает ВЕЗДЕ!!!');
</script>

  Ответить  
 
 автор: coloboc66   (10.11.2009 в 12:13)   письмо автору
 
   для: АЯ   (10.11.2009 в 11:59)
 

Да - работает.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования