我在一项在线测验中遇到了这个问题。我想出的解决方案是 function 。但是,控制台会记录 number 。
var f = (
function f(){return "1";},
function g (){return 2;}
)();
console.log(typeof f);
我的想法是:var f
成为IIFE,因此typeof f
应该是一个函数。
现在,很显然,function g()
中的var f
会执行并将其值返回给var f
,因此控制台会记录 number (如果我只是记录,则为2) f
。
问题:
1. 功能逗号 anotherFunction 的解释是什么。这不是对象,也不是变量声明(例如var x,y;)?
2。第二个函数以某种方式返回了,但是实际上代码的哪一部分执行了它?
(我认为()
调用之前的console.log
正在执行外部f
函数(该函数应该只定义内部函数f()
和g()
,但不执行其中任何一个)。第二个执行了,所以,显然,我错了。