- 函数具名化(设置了名字):
设置的名字只能在函数内部使用,外部是无法使用的(基于这种方式代替严格模式下不兼容的arguments.callee,并以此实现递归算法【自己调用自己】)
在函数内部去修改这个名字值,默认是不能修改的,代表的依然是函数本身(除非这个函数名字在函数中被重新声明过,重新声明后,一起都按照重新声明的为主)
<script>
(function fn(){
console.log(fn); //第一种 函数本身
fn=10;
console.log(fn); //第二种 函数本身
//第三种 变量提升:var fn;
console.log(fn); //undefined
var fn=20;
console.log(fn); //20
})();
console.log(fn); //fn is not defined
</script>
- 没有具名例题
<script>
var b=10;
(function (){
//b是EC(G)中的
b=20;
console.log(b); //20
})();
console.log(b); //20
</script>
- 具名之后的实例
<script>
var b=10;
(function b(){
b=20;
console.log(b); //函数本身
})();
console.log(b); //10
</script>