如何在javascript中调用嵌套函数?

时间:2015-01-20 10:45:02

标签: javascript

我有两个这样的功能..

function a() {
  function b() {
    alert('reached');
  }
}

我如何从函数a()..

之外调用函数b()

3 个答案:

答案 0 :(得分:6)

一般来说,你不能。在另一个函数中定义函数的关键是将其范围扩展到该函数。

b可以在a之外访问的唯一方法是(当您致电a时)在a内执行某些操作以使其在a之外可用{1}}。

这通常用于创建闭包,以便b可以从a访问变量,而不会公开这些变量。执行此操作的常规方法是返回b

function a() {
  var c = 0;
  function b() {
    alert(c++);
  }
  return b;
}
var d = a();
d();
d();
d();
var e = a();
e();
e();
e();

答案 1 :(得分:3)

您可以将代码重新排列到此

function a() {
   this.b = function() {
   alert('reached');
 }
}

现在实例化它并运行:

c = new a();
c.b();

答案 2 :(得分:0)

您需要返回内部函数调用。

function a() {
  function b() {
    alert('reached');
  }
  return b();
}

然后你可以通过调用函数a来调用这个函数:

a();

输出将是必需的警报。