+-
如上图,使用var 以后调用可以打印出
但是直接调用或者 console.log 就不显示或者直接打印
f1
是一个函数:function f1() { }
,所以 console.log(f1)
输出说明它是一个函数,没毛病
如果 console.log(f1())
,是输出 f1()
的调用结果,由于 f1()
返回的是 f2
,而 f2
也是一个函数,所以仍然会输出函数信息,大概是 [Function: f2]
。
如果 console.log(f1()())
,这回得到 f2
之后对其进行了调用,首先会输出 f2()
中的打印语句,也就是 999
,接着会输出 f2()
的返回值,因为没有 return
,会输出 undefined
var result = f1(); result() = f1()(); //log > 999
调用f1 之后取到的是 函数f2,调用f2 才会执行f2才会有输出