x在fn函数之后声明但返回其值。为什么fn没有返回undefined?
function doWork(){
let fn = function(){ return x; }
let x = 2;
return fn();
}
console.log(doWork()); // 2
在doWork()
函数内部,首先设置一个函数并将其分配给fn
- 此函数尚未调用。然后你将x
定义为2
。在此定义之后,您可以通过调用fn()
来调用return fn()
。
因为JavaScript从上到下工作,所以x
是在你引用fn()
时定义的,所以fn()
能够正确地使用return x
。
这可以在以下内容中看到:
function doWork() {
let fn = function() {
return x;
}
let x = 2;
return fn();
}
console.log(doWork()); // 2