Comments 16
Я думаю, вам стоит углубиться в детали, поскольку статья практически не содержит особой премудрости.
Не рекомендовал бы такой способ создания функции (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
Удачи.
А точно, это же перевод. Тогда вообще не понимаю на кой переводить статьи такого уровня.
Ну да, статья для новичков. На Хабре такое не приветствуется?
Приветствуется, когда в примерах кода показаны «best practice», а не
new Function
, итд.Да! и хотя многопримудрые будут со мной не согласны, считаю, что не важно какого уровня знаний требует статья, вы все в чем то новички)) Главное качество литературы!
Странная у вас классификация функций.
Это анонимная или именованная?
var foo = function bar() {};
Это анонимная или именованная?
Анонимная, переменная
bar
ссылающаяся на функцию доступна только внутри тела самой функции.Вам стоит почитать про функциональное программирование, лямбда-исчисление и тому подобное.
Само по себе ваше понимание слова callback — уже дилетантское и неправильное, и именно поэтому вы не нашли никаких статей по теме. А искать на самом деле недалеко — lurkmore.to/SICP
Само по себе ваше понимание слова callback — уже дилетантское и неправильное, и именно поэтому вы не нашли никаких статей по теме. А искать на самом деле недалеко — lurkmore.to/SICP
Я просто оставлю это здесь JS async monad.
Но SICP в частности и Scheme вообще тоже хороши, поскольку
Но SICP в частности и Scheme вообще тоже хороши, поскольку
The key design principles within JavaScript are taken from the Self and Scheme programming languages.
Некоторое время назад был уверен, что ясно себе представляю как правильно передавать функции в параметрах, как обрабатывать параметры и т.п… Я писал довольно много на JS — и всё хорошо работало.
Но когда начал писать под Ноду — то понял, как сильно я заблуждался; я понял, насколько я был раньше не прав… =(
До сих пор регулярно натыкаюсь на случаи, когда понимаю, что мои представления о правильности вызовов функций и передачи в них параметров и возврат значения наверх по цепочке вызовов, да и сам принцип построения этих цепочек, немного неверны.
С одной стороны, безусловно, Нода и обычный браузерный JS — вещи разные. И в последнем многие косяки «прощаются» системой (в силу наличия строгой и ясной последовательности выполнения) и остаются незамеченными. С другой — всё не так просто как кажется =(
Меня сильно привлекла эта статья — но я разочарован — она ни о чём =(( Простите
Но когда начал писать под Ноду — то понял, как сильно я заблуждался; я понял, насколько я был раньше не прав… =(
До сих пор регулярно натыкаюсь на случаи, когда понимаю, что мои представления о правильности вызовов функций и передачи в них параметров и возврат значения наверх по цепочке вызовов, да и сам принцип построения этих цепочек, немного неверны.
С одной стороны, безусловно, Нода и обычный браузерный JS — вещи разные. И в последнем многие косяки «прощаются» системой (в силу наличия строгой и ясной последовательности выполнения) и остаются незамеченными. С другой — всё не так просто как кажется =(
Меня сильно привлекла эта статья — но я разочарован — она ни о чём =(( Простите
Я больше склоняюсь что калбеки в некоторм роде зло, пораждающее макаронные изделия, и по возможности лучше использовать событийный (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 порой просто не имеет осмысленного имени где нужно, а еще в данную функцию иногда передаются переменные, с которыми тоже могут возникать вопросы.
Сейчас я страраюсь дважды задумываться над кодом, который вызвает калбеки.
Sign up to leave a comment.
Понимание callback-функций (колбеков)