+-
JavaScript 使用node 疑问

如上图,使用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

image.png

var result = f1(); result() = f1()(); //log > 999
调用f1 之后取到的是 函数f2,调用f2 才会执行f2才会有输出