javascript - 为什么函数f中的返回值返回的是显示函数而不是x值

标签 javascript

hi a 想问一下为什么这段代码返回一个函数而不是 x 值。 提前致谢。

function f() {
  function makeClosure(x) {

    return function(){
      return x;
    };
  }
  var a = [];
  var i;
  for(i = 0; i < 3; i++) {
    a[i] = makeClosure(i);
  }
  return a;
}
var a = f();
console.log(a[0]);

最佳答案

makeClosure 正在返回函数,因此您的数组 a 充满了函数。

a[0] 将返回函数,a[0]() 将返回 x

关于javascript - 为什么函数f中的返回值返回的是显示函数而不是x值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508296/

相关文章:

javascript - json 替换nodejs中的所有$regex

javascript - 如何使用时刻获取不同时区的日期之间的差异?

javascript - Map<String, String> 未映射

javascript - 为什么这个变量未定义或未返回?

javascript - 如何检测div中水平滚动的结束?

javascript - 数组是否作为 JavaScript ECMAScript 兼容中的左值?

javascript - Chrome 发送请求错误 : TypeError: Converting circular structure to JSON

javascript - mouseup 事件有问题

javascript - 链式 promise 不会捕获错误

javascript - JQuery 元素显示/隐藏和控制流程