У меня возникают проблемы в понимании вывод из приведенного ниже кода (в JavaScript):Почему функция, возвращаемая функцией обратного вызова, не образует замыкания над функцией, где она вызывается?
function outerFunction(callback){
var x =10;
var myCallbackRet = callback();
myCallbackRet();
}
outerFunction(function(){
return function(){
console.log(x); //output - x is not defined
}
});
Насколько я понимаю, когда функция myCallbackRet
называется то [[Scope]] свойство myCallbackRet
устанавливается в Scope цепь outerFunction
, и поэтому переменная x
должна быть доступна внутри `myCallbackRet '.
Почему выходной параметр «undefined»? Заранее большое спасибо.
Прежде всего 'вар myCallbackRet = обратный вызов()' 'должны быть вар myCallbackRet = обратный вызов,' – akinuri
Нет, я думаю, что его право akinuri. Обратный вызов - это переданная функция, возвращающая функцию. – AtheistP3ace
На самом деле я вызываю функцию обратного вызова и сохраняю результат обратного вызова, который сам является функцией внутри переменной myCallbackRet. Я считаю, что это совершенно верно. – Bauwa