Как передать доп параметр в колбек функцию?

function foo(locationresult){};
navigator.geolocation.getCurrentPosition(foo,foo); //вызывает foo с параметром locationresult

Вопрос - можно как-то передать в foo что-то своё?


Ответы (1 шт):

Автор решения: Grundy

callback вызывается внутри функции, соответственно набор параметров также определяется внутри и к нему нет доступа.

Для передачи дополнительной информации можно использовать

  1. замыкания

    var variable = ...;
    function foo(locationresult){
        variable // доступ к внешней переменной
    };
    
  2. использовать bind

    var fooBinded = foo.bind(context, arg1,arg2, ...)
    

    в этом случае будет проблема если функция использует this, и вызывающая функция пытается ее задать.
    определение функции должно поменяться на следующее

    function foo(arg1, arg2, ..., locationresult){
    
→ Ссылка