我有两个这样的功能..
function a() {
function b() {
alert('reached');
}
}
我如何从函数a()..
之外调用函数b()答案 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();
输出将是必需的警报。