var fn=null;
function foo(){
var a=2;
function innerFoo(){
console.log(a);
}
fn=innerFoo;
}
function bar(){
fn();
}
foo();
bar();
什么直接在bar()调用innerFoo函数就会报错 将innerFoo函数引用给fn 就可以在bar()中调用呢?
似乎是和闭包及垃圾回收机制有关,但是我似懂非懂地。
本文解释了JavaScript中函数foo定义内部函数innerFoo并将其赋值给fn,为何在bar()调用时能成功。涉及的知识点包括闭包和垃圾回收机制,帮助读者理解JavaScript动态作用域和内存管理原理。
var fn=null;
function foo(){
var a=2;
function innerFoo(){
console.log(a);
}
fn=innerFoo;
}
function bar(){
fn();
}
foo();
bar();
什么直接在bar()调用innerFoo函数就会报错 将innerFoo函数引用给fn 就可以在bar()中调用呢?
似乎是和闭包及垃圾回收机制有关,但是我似懂非懂地。
1702

被折叠的 条评论
为什么被折叠?