我试图理解将函数存储为变量。如果我有以下函数:
function calc() {
return 2 * 2
}
calc() //returns 4
var test = calc()
test // returns 4
我知道变量test
的值为4,这是有意义的。
但是,在本例中:
function foo() {
console.log("HEY")
}
foo() //logs "HEY" in the console
var test = foo()
test // does NOT log "HEY" in the console.
为什么不遵循同样的模式呢?
6条答案
按热度按时间but5z9lq1#
var test = foo()
没有将函数foo
存储到变量test
中,它在test中存储foo
的 * 返回值 *,并且由于foo
没有指定返回值,所以存储在test
中的值将是undefined
。进一步解释:在函数名或对函数的引用后放置括号将调用该函数。要只引用函数而不调用它,请在准备调用它之前不要使用括号。例如:
b91juud32#
svdrlsy43#
而是关于回归和做一些事情!
当你在fn下面调用时,它返回一个值
如果你认为这是在做什么!
这意味着,当你调用calc fn时,你需要给它赋一个变量
如果要记录一些内容,只需调用foo(不赋值)
webghufk4#
()调用函数并返回一个值,因此括号需要为var test = foo test()
wgeznvg75#
cuxqih216#
您需要执行以下操作:返回“嘿”;而不是console.log(嘿);