У меня есть стандартный javascript-модуль (шаблон), который содержит число частных методов и переменных . Я нахожу, что борюсь с сохранением контекста this
, чтобы указать на мой модуль после использования $.each
.
Я знаю, что метод jQuery $.each
создает закрытие и, следовательно, новый «контекст», однако я хочу продолжать иметь this
, ссылаясь на модуль. Я обнаружил, что вызов частной функции моего модуля (initFruit()
в образце) с помощью initFruit.call() и передача в self
копии this
(которая находится в области видимости) работает для этой функции, однако, как только эта функция вызывает еще одна функция, контекст снова потерян.
Я действительно не хочу, чтобы все мои личные функции с помощью .call() все время были просто потому, что я использовал $.each
дальше в стеке вызовов, так как я могу использовать $.each
, не потеряв исходный контекст?
Fiddle: https://jsfiddle.net/BloodBaz/zz11n5wp/1/
У меня был такой же вопрос давным-давно. Я спросил [вопрос] (http://stackoverflow.com/questions/29983887/this-returning-either-object-or-window-inside-the-same-object), возможно, предоставленные ответы могут вам помочь. –
Спасибо @JeremyThille. Интересно. Ваш пример передает вспомогательную функцию через посредник 'navigator.geolocation.getCurrentPosition', который я не делаю в этом примере. –