var a = 1;
function b() {
console.log(2);
}
(function (){
console.log(a);
b();
var a = 3;
function b(){
console.log(4);
}
})()
结果:
undefined
4
闭包中,里边的a 和 b的都会覆盖外边的,但是字面量的声明, 在那一行的执行过之后才会有赋值,而函数式的声明在没有执行前,就会覆盖的。
===================
在来试一下:
//a
//function(){var ss =1}