关于javascript闭包

MDN中说,闭包是一种特殊的对象。它由两部分构成:函数,以及创建该函数的环境。环境由闭包创建时在作用域中的任何局部变量组成。

那么下面这个闭包,谁构成了环境?x算是局部变量吗,它不是参数吗?

function makeAdder(x) {
  return function(y) {
    return x + y;
  };
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2));  // 7
console.log(add10(2)); // 12
阅读 3.3k
3 个回答

形参可以看作是函数的局部变量,只不过是在函数调用时通过传参赋值

makeAdder 里面的内容都算环境,包括参数也是

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题