-1

Я пытаюсь несколько повторить функциональность forEach, чтобы лучше понять ее. В forEach вы можете передать его в анонимной функции с параметром «элемент», а затем он даст вам элементы в массиве. Так как это делается точно? Ниже у меня есть функция print, где я вызываю другую функцию a с анонимной функцией в качестве параметра. Итак, как я могу извлечь параметр «param» из анонимной функции и использовать его в определении.Javascript: Как получить параметры обратного вызова

function print() { 
    var param = 'param1' 
    a(function(param) { 
    console.log('execute a') 
    }) 
} 

function a(fn) { 
    //how can i access the fn's parameter list here? 
    //execute fn and do something with its parameter 
    fn() 

} 

print() 

То, что я пытаюсь выполнить: Выполнить функцию «а» и выполнить анонимную функцию передается в него вместе с его параметрами

ответ

1

Вы совершенно непонимание параметров.

Ваш обратный вызов является функцией. Его параметры передаются кодом, который его вызывает (в a()), как и любая другая функция.

Если вы хотите передать параметр a(), вы должны передать его, как и любой другой параметр.


Тот факт, что параметр вашего обратного вызова имеет то же имя, что и локальная переменная, совершенно не имеет значения.

+0

SLaks, я не уверен, что понимаю, что вы имеете в виду. Вы говорите, что приведенный выше код неправильный, и этого не должно быть сделано? – user1142130

+0

@ user1142130: Ваш вопрос не имеет смысла. Вам нужно понять, как работают параметры и функции. Что ты пытаешься сделать? – SLaks