Я немного смущен тем, как функции работают в javascript. Я понимаю, что это все объекты, но как это изменится, как я буду использовать их в качестве аргументов?Когда объявлять новую (анонимную) функцию в javascript?
Например, если я пытаюсь использовать функцию обратного вызова, где второй аргумент вычисляется после 1000 мс ...
$(this).fadeIn(1000,function(){alert('done fading in');});
Почему я не могу добиться того же эффекта с:
$(this).fadeIn(1000,alert('done fading in'));
Если да, то оно оценивается одновременно. То есть, (этот) элемент исчезает, и одновременно появляется предупреждение.
Когда я вызываю alert (arg), не создаю ли я новый объект, который передается в fadeIn()?
Как именно это работает?
хорошо вопрос. Я буду придерживаться этого – OptimusCrime
Для языковых ботаников: техника, которую вы хотите, называется * [partial function application] [1] *, также часто называемой * Currying *. Вам действительно нужна новая функция, где некоторые аргументы фиксированы, а другие - нет. [1]: http://en.wikipedia.org/wiki/Partial_application –
@nd: Нет, на самом деле это не так. В этом примере не проводится каррирование или частичная оценка. Если вы ищете термин, * анонимная функция *. Также * функции более высокого порядка * для функций, которые принимают функции в качестве аргументов. – KaptajnKold