Коллеги, добрый день. Немного запутался. Пытаюсь оформить код, в котором callback функция объявлена как самостоятельная функция: Код (Javascript): setWatch(buttonClick(e),BTN1); // function function buttonClick(pSetWatch) { console.log('button is press'); } при загрузке программы в STM32F4Discovery получаю ошибку: ERROR: Invalid pin Uncaught ReferenceError: "buttonClick" is not defined at line 1 col 10 setWatch(buttonClick(e),BTN1); Я понимаю, что callback функцию можно определить непосредственно в setWatch, но как же тяжело переходить на такой стиль. Пробовал передавать callback как строку: Код (Javascript): setWatch('buttonClick(e)',BTN1); // function function buttonClick(pSetWatch) { console.log('button is press'); } однако, тут проблема с передачей в callback параметра e.
Привет! в строке setWatch(buttonClick(e), BTN1); При таком написании функция buttonClick(e) не передается в качестве параметра, а вызывается. В этом случае передается результат выполнения buttonClick(e). Кроме того, buttonClick(e) объявлена ниже по коду, и на момент её использования в setWatch, о buttonClick ещё ничего не известно. работать будет, например, вот так: Код (Javascript): function buttonClick(pSetWatch) { console.log('button is press', pSetWatch); } setWatch(buttonClick, BTN1, { repeat: true });
Становится понятно, почему утверждение: прочитанное мной на уважаемом learn.javascript.ru не работает. Интерпретатор не вызывает callback функцию, которая указана в параметре. При размещении callback функции после setWatch просто не проходит синтактический контроль.