【问题标题】:If you call funtionA insider funtionB, will functionA be invoked? What is happening in compilation level?如果在函数内部调用函数,会调用函数吗?编译级别发生了什么?
【发布时间】:2019-01-28 04:38:40
【问题描述】:

我正在阅读“你不懂 JS”系列丛书,发现被一段简单的代码弄糊涂了。在下面的代码中,我试过了,什么都不会打印出来。即使函数 bar 中有“foo()”,也不会调用 foo。谁能帮我理解为什么在 bar 期间不会调用另一个 foo() ?

编译代码时,“foo()”行发生了什么?提前致谢。

function foo() {
  console.log( "5" ); 
}

function bar() {
   var a = 3;
   foo();
}

【问题讨论】:

  • 您的代码是否在任何地方调用函数bar()?您发布的代码中没有这样的调用。如果你不打电话给bar(),那么什么都不会发生。
  • bar() 不会在其他任何地方调用。调用只能在全局范围内发生? foo() 可以在 bar() 中调用吗?
  • 是的 foo() 在“bar”函数内很好。只需将bar(); 放在末尾即可。

标签: javascript function compilation invoke


【解决方案1】:

你实际上并没有调用函数 bar(),你只是定义了它。

【讨论】:

  • bar的定义过程中,是否调用了foo? foo() 似乎是一个调用
  • @Gaoyan 是的,但要做到这一点,你必须有bar()
  • 很好,如果满意请采纳。
猜你喜欢
  • 2017-10-23
  • 2012-05-10
  • 2016-09-30
  • 2017-07-12
  • 2014-11-11
  • 2013-09-17
  • 2011-05-20
  • 1970-01-01
相关资源
最近更新 更多