http://www.cnblogs.com/ssh-007/p/5064699.html
说明函数上下文VO按照如下顺序填充:
- 函数参数 (若未传入,初始化该参数值为undefined,会被 函数声明 和 变量声明 覆盖)
- 函数声明 (若发生命名冲突,会覆盖)
- 变量声明 (初始化变量值为undefined,若发生命名冲突,会忽略。)
例子:
(function f(a){
var a;
function a(){
return "aaa";
}
console.log(a);
})(function(){ return 2; });
返回: function a() {return "aaa"; }