首页 > 解决方案 > 代码的哪一部分执行内部函数?

问题描述

我在其中一个在线测验中遇到了这个问题。我想出的解决方案是function。但是,控制台记录number

var f = (
   function f(){return "1";},
   function g (){return 2;}
)();
console.log(typeof f);

我的想法是:var f成为一个 IIFE,所以typeof f应该是一个函数。

现在,显然,function g()insidevar f执行并将其值返回给var f,因此控制台记录数字(或 2,如果我只是 log f)。

问题:

1.函数逗号anotherFunction的解释是什么。这不是一个对象,也不是一个变量声明(如 var x, y;)?

2.不知何故,第二个函数是被返回的函数,但代码的哪一部分实际上正在执行它?

(我认为()就在console.log调用执行外部f函数之前(它应该只定义内部函数f()g(),但不执行它们中的任何一个)。第二个被执行,所以,显然,我错了。

标签: javascriptiife

解决方案


推荐阅读