Комментарии 16
Я думаю, вам стоит углубиться в детали, поскольку статья практически не содержит особой премудрости.
+2
Не рекомендовал бы такой способ создания функции (bad practice)
Если хотите создать анонимную функцию, то так:
Если именованую, то:
А в целом статья напоминает мысли вслух человека, который только начал изучать JS.
Почитай вдумчиво для начала javascript.ru/Function и javascript.ru/AJAX
Удачи.
var func_multiply = new Function("arg1", "arg2", "return arg1 * arg2;");
Если хотите создать анонимную функцию, то так:
var my_func = function(){};
Если именованую, то:
function my_func(){}
А в целом статья напоминает мысли вслух человека, который только начал изучать JS.
Почитай вдумчиво для начала javascript.ru/Function и javascript.ru/AJAX
Удачи.
0
А точно, это же перевод. Тогда вообще не понимаю на кой переводить статьи такого уровня.
0
Ну да, статья для новичков. На Хабре такое не приветствуется?
+1
Приветствуется, когда в примерах кода показаны «best practice», а не
new Function
, итд.+1
Да! и хотя многопримудрые будут со мной не согласны, считаю, что не важно какого уровня знаний требует статья, вы все в чем то новички)) Главное качество литературы!
0
Странная у вас классификация функций.
Это анонимная или именованная?
var foo = function bar() {};
Это анонимная или именованная?
0
Анонимная, переменная
bar
ссылающаяся на функцию доступна только внутри тела самой функции.0
Вам стоит почитать про функциональное программирование, лямбда-исчисление и тому подобное.
Само по себе ваше понимание слова callback — уже дилетантское и неправильное, и именно поэтому вы не нашли никаких статей по теме. А искать на самом деле недалеко — lurkmore.to/SICP
Само по себе ваше понимание слова callback — уже дилетантское и неправильное, и именно поэтому вы не нашли никаких статей по теме. А искать на самом деле недалеко — lurkmore.to/SICP
0
Я просто оставлю это здесь JS async monad.
Но SICP в частности и Scheme вообще тоже хороши, поскольку
Но SICP в частности и Scheme вообще тоже хороши, поскольку
The key design principles within JavaScript are taken from the Self and Scheme programming languages.
0
Некоторое время назад был уверен, что ясно себе представляю как правильно передавать функции в параметрах, как обрабатывать параметры и т.п… Я писал довольно много на JS — и всё хорошо работало.
Но когда начал писать под Ноду — то понял, как сильно я заблуждался; я понял, насколько я был раньше не прав… =(
До сих пор регулярно натыкаюсь на случаи, когда понимаю, что мои представления о правильности вызовов функций и передачи в них параметров и возврат значения наверх по цепочке вызовов, да и сам принцип построения этих цепочек, немного неверны.
С одной стороны, безусловно, Нода и обычный браузерный JS — вещи разные. И в последнем многие косяки «прощаются» системой (в силу наличия строгой и ясной последовательности выполнения) и остаются незамеченными. С другой — всё не так просто как кажется =(
Меня сильно привлекла эта статья — но я разочарован — она ни о чём =(( Простите
Но когда начал писать под Ноду — то понял, как сильно я заблуждался; я понял, насколько я был раньше не прав… =(
До сих пор регулярно натыкаюсь на случаи, когда понимаю, что мои представления о правильности вызовов функций и передачи в них параметров и возврат значения наверх по цепочке вызовов, да и сам принцип построения этих цепочек, немного неверны.
С одной стороны, безусловно, Нода и обычный браузерный JS — вещи разные. И в последнем многие косяки «прощаются» системой (в силу наличия строгой и ясной последовательности выполнения) и остаются незамеченными. С другой — всё не так просто как кажется =(
Меня сильно привлекла эта статья — но я разочарован — она ни о чём =(( Простите
+1
Я больше склоняюсь что калбеки в некоторм роде зло, пораждающее макаронные изделия, и по возможности лучше использовать событийный (events) механизм (благо такой есть наверное в любой библиотеке или фреймворке).
Например нужно передавать callback нескольким функциям внутрь:
И это не учитывая того, что callback порой просто не имеет осмысленного имени где нужно, а еще в данную функцию иногда передаются переменные, с которыми тоже могут возникать вопросы.
Сейчас я страраюсь дважды задумываться над кодом, который вызвает калбеки.
Например нужно передавать callback нескольким функциям внутрь:
function doSubAction (callback) {
// your code there
callback();
}
function doAction (callback) {
// your code there
doSubAction(callback);
}
function do () {
// your code there
doAction(function () {
console.log("I'm work");
}
}
И это не учитывая того, что callback порой просто не имеет осмысленного имени где нужно, а еще в данную функцию иногда передаются переменные, с которыми тоже могут возникать вопросы.
Сейчас я страраюсь дважды задумываться над кодом, который вызвает калбеки.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Понимание callback-функций (колбеков)