Я пытаюсь понять видео «Понимание каррирования функций» на Vimeo ( http://vimeo.com/41238143 но не обязательно его просматривать, чтобы понять этот вопрос).
Пример я понимаю
В начале видео Нам говорят, что есть проблема с этим кодом:
Проблема с этим кодом: использование обратного вызова в строках 11 и 14 не будет работать, потому что оно выходит за рамки — onSuccess существует в области buildCRUD, а не в области создать область. (Я назову это «пример обратного вызова».)
Хорошо, это имеет смысл для меня. Решения рассматриваются в том числе с использованием одной переменной класса (я знаю, что эта терминология отключена, потому что в javascript нет классов, но вы понимаете, что я имею в виду).
Пример я не понимаю
Вот где я смущен. В конце видео нам говорят, что этот код для другой части функции будет работать. (Обратите внимание на переменный параметр "className"; я буду называть его "пример className".)
(Извините, я отрезал строку, в которой говорится "var ...", просто поверьте мне, что она там и createFn, getFn и т. д. объявляются как часть длинной строки «var».)
Как видите, реализация этих функций, таких как createFn, действительно использует переменную className, хотя она не передается в функцию в качестве параметра.
Вот мой вопрос: почему className находится внутри createFn? Мне кажется, что его больше нет в forClass чем onSuccess в области создания.
Это как-то связано с...
- тот факт, что функция в примере обратного вызова никогда не назначается как переменная внутри контекста функции создания, а только вызывается?
- пример обратного вызова с использованием обещаний?
className
, где мы его не видим). Обратите внимание, чтоonSuccess
входит в область действияcreate
, ноcallback
не входит в область действияonSuccess
'. Нет, это не имеет ничего общего с обещаниями. - person Bergi   schedule 10.11.2014