function f() { return console.log('I am outside!'); }
(function () {
if(false) {
// 重复声明一次函数f
function f() { return console.log('I am inside!'); }
}
f();
}());
这段js程序,在chrome下,我如果将断点打在第一行,会显示:
I am inside!
I am outside!
如果直接运行,只会打印一个
I am outside!
这是一种什么机制会导致这样的情况呢?求大神帮解惑…………
function f() { return console.log('I am outside!'); }
(); 这个是js自执行函数,定义完立即执行。你把断点打在第一行,但是括号里的函数本来就执行在第一行之前。