职能范围?

时间:2018-03-17 12:49:23

标签: javascript



function x() {
  var a = 2;
  y();
}

function y() {
  a += 3;
}
x();
//returns a is not defined




如果我在函数(x)之外声明了一个函数(y),为什么它不会继承外部函数的变量和值?有解决上述问题的方法吗?

1 个答案:

答案 0 :(得分:1)

变量a被声明为function x()的一部分。这就是a仅在x()内可用的原因。要解决此问题,您必须将变量a作为函数参数传递:

function x() {
  var a = 2;
  y(a);
}

function y(a) {
  a += 3;
  console.log(a);
}
x();