Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: непонятная функция function(e){...}e

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Serhio
Отправлено: 12 Марта, 2014 - 20:35:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




Всем привет!
Подскажите что погуглить когда пишут так:

function(e){....}e

или так:

function(e){...}e.preventDefault()

мне не понятно как после function(e){...} можно дополнять так как дополнено выше.

Ещё бывает так:

for (var i = 0, f; f = files[i]; i++) {
.... = (function(theFile) {.......})(f);
.....
}
Это что за синтаксис такой?

(Отредактировано автором: 12 Марта, 2014 - 20:38:43)

 
 Top
IllusionMH
Отправлено: 12 Марта, 2014 - 20:37:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Serhio, ищите Automatic Semicolon Insertion.

Второй случай - совершенно другой. Ищите Immediately-Invoked Function Expression (IIFE) или Immediately-Invoked Anonymous Function (IIAF), заодно и Замыкание

(Отредактировано автором: 12 Марта, 2014 - 20:41:01)

 
 Top
LIME
Отправлено: 12 Марта, 2014 - 20:44:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а можно не гуглить а сразу Функции и замыкания
 
 Top
OrmaJever Модератор
Отправлено: 12 Марта, 2014 - 20:45:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)






-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Serhio
Отправлено: 13 Марта, 2014 - 17:46:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




Спасибо пацаны! реально крутые темы и статьи!
И все же остались вопросы:

1. По поводу function(e){...}e.preventDefault()

Вопрос был: как после function(e){...} можно сразу же писать e.preventDefault()

Я чего-то не врубился с точкой запятой ASI причем здесь она. Можно на пальцах в двух словах. Буду благодарен.

2. Прочел все про IIFE, реально круто! И все-таки пример который я дал:
for (var i = 0, f; f = files[i]; i++) {
.... = (function(theFile) {
....//statement
})(f);
.....
}

Если бы это были только мгновенные функции, то писать его надо тогда так:


....

(function(theFile) {
....//statement
}(f));

....

Посмотрите разница в последних скобках. И кстати в описании IIFE последний параметр (f) фигурирует в //statement или как в учебнике который дал LIME в LexicalEnvironment функции function(theFile). И в моем примере в //statement f нету.

Можно ваших умных мыслей?

(Отредактировано автором: 13 Марта, 2014 - 17:48:59)

 
 Top
LIME
Отправлено: 13 Марта, 2014 - 17:58:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




1 function(e){...}e.preventDefault() синтаксис лишен смысла если только он не входит сам в подобную конструкцию
что тут можно сказать в отрыве от контекста? только "знания есть дальше сам разбирайся"
2 тут идет описание и вызов сразу
и результат вызова возвращается в левую часть оператора =
зачем так сделано опять же сказать не берусь

итог : ковыряй и думай
 
 Top
IllusionMH
Отправлено: 13 Марта, 2014 - 18:02:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Serhio,
1) да просто автоматом ставится ; после } и все. Просто в минифицированном коде экономят на всем, и в первую очередь на ;
2) функция ожидает 1 параметр и 1 параметр ей передается, что здесь не так? Никто ж не требует чтобы имена переменной и имя параметра совпадали.
Разница в скобках - повод для холивара(закрывать скобку после } либо уже после параметров). Кому как нравится, хотя оба варианта имеют свое объяснение и слегка отличающиеся "семантические" значения.
В данном случае идет присваивание и оборачивать в скобки для избежания синтаксической ошибки уже не нужно, поэтому для экономии эти скобки убрали.

(Отредактировано автором: 13 Марта, 2014 - 18:08:35)

 
 Top
Serhio
Отправлено: 13 Марта, 2014 - 18:12:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




IllusionMH пишет:
Serhio,
1) да просто автоматом ставится ; после } и все. Просто в минифицированном коде экономят на всем, и в первую очередь на ;
2) функция ожидает 1 параметр и 1 параметр ей передается, что здесь не так? Никто ж не требует чтобы имена переменной и имя параметра совпадали.
Разница в скобках - повод для холивара. Кому как нравится, хотя обоим вариантам есть объяснение.



1.Все с первым врубился! Спасибо всем за растолковку!) (з.ы. где бы про это почиать наверное поискать - минифицированный код?)

2.Со вторым - (fuction(...){...})(f), это функция, она ждет f? а нахера он ей если она внутри цикла и внутри эту переменную не юзает....Пффф... Кому как нравится.. да а документация есть по предпочтениям и че загуглить?

По поводу кода, все взято из всем думаю известной статьи http://www[dot]html5rocks[dot]com/ru/tut[dot][dot][dot]s/file/dndfiles/
Вот пытаюсь освоить!)

(Отредактировано автором: 13 Марта, 2014 - 18:13:03)

 
 Top
IllusionMH
Отправлено: 13 Марта, 2014 - 18:16:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Serhio, про замыкания(ссылка выше) еще раз прочитайте. Если вы не понимаете, не нужно тут рассказывать другим что что-то неправильно.

Предпочтения это (function(param){...})(param) или (function(param){...}(param)) разницы в результате нет. upd. там есть пара скобок, хотя ее можно было было и не писать.

(Отредактировано автором: 13 Марта, 2014 - 18:21:22)

 
 Top
Serhio
Отправлено: 13 Марта, 2014 - 18:17:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




IllusionMH пишет:
Serhio, про замыкания(ссылка выше) еще раз прочитайте. Если вы не понимаете, не нужно тут рассказывать другим что что-то неправильно.


Короче почитал я про замкнутые ф-ии ещё раз! И складывается у меня впечатления, что ты про осла говоришь а я про барана!

И не нужно учить общаться других. Не нравится не общайтесь, а если есть вопросы, то типо это нормально.

(Отредактировано автором: 13 Марта, 2014 - 18:31:22)

 
 Top
LIME
Отправлено: 13 Марта, 2014 - 18:52:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а theFile юзается?
а откуда его значение берется?
CODE (javascript):
скопировать код в буфер обмена
  1. var a = 5;
  2. var b = 7;
  3.  (fuction(theFile){...})(a);
  4.  (fuction(theFile){...})(b)
 
 Top
IllusionMH
Отправлено: 13 Марта, 2014 - 18:56:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Serhio, нормальные вопросы задаются нормально, а не "пфыкая".
Да легко, разбирайтесь сами без подсказок. Как видно - даже не знали что искать, пока вам не сказали.
 
 Top
Serhio
Отправлено: 14 Марта, 2014 - 12:03:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




По честнаку скажу это первый форум на котором я сижу и возможно не совсем ещё освоился с общением. Хорошо "пфыкать" не будем. Помощь, да оказана большая, я не отрицаю. Спасибо большое. А все-таки учить кого-то как правильно общаться не стоит, тут не милости прошу.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB