JavaScript函数互相调用

时间:2013-01-12 17:19:15

标签: javascript

与主题一样:

function a()
{
     b();
}
function b()
{
     a();
}

我试过这个但没有成功:

function b(){}

function a()
{
     b();
}
function b()
{
     a();
}

任何帮助表示赞赏;]。

3 个答案:

答案 0 :(得分:1)

因为您说这个问题是关于您是否能够在声明之前出现的代码中调用函数:答案是。在JavaScript中,变量和函数声明始终被提升到其封闭范围的顶部。在函数的情况下,声明和定义都被提升,所以:

console.log(a); // undefined
console.log(b); // ReferenceError - there is no var b
console.log(f()); // 20;
var a = 10;
console.log(a); // 10
function f() { return 20; }

答案 1 :(得分:0)

这是一个无休止的递归循环。坏:

function a()
{
     b();
}
function b()
{
     a();
};

a();

有。有趣的是崩溃浏览器。

答案 2 :(得分:0)

简化适用于调试,但让它变得有用和安全(基于Sam3k的响应):

function a(i) { 
  if (i < 10)
  {
     console.log('Running "a" iteration['+i+']');
     b(i);
  }
}

function b(i)
{    
     i++;
     console.log('Running "b" iteration['+i+']');
     a(i);
};

a(1);