(function() {
var f = function f(f) {
console.log(f);// 2
f = 1;
console.log(f);// 1
}
f(2);
console.log(f);// function f(f)
})();
(function() {
var f = function f() {
console.log(f);// function f()
f = 1;
console.log(f);// function f()
}
f();
console.log(f);// function f()
})();
我的理解是在同一作用域中形参优先级比同名函数名高,在函数体修改f
只修改了arguments对象,第二个case中f
应该是指向函数名,因为函数名不能重写,不知道理解是否正确?