作用域及作用域链

Js入门与实战 admin 445浏览

只有函数可以制造作用域结构,那么只要是代码.就至少有一个作用域,凡是代码中有函数,那么这个函数就构成另一个作用域.如果函数中还有函数,那么这个函数中就又可以诞生一个作用域.

将这样的所有的作用域列出来,可以有一个结构:函数内指向函数外的链式结构.就称作作用域链.

<script>
var a=1;
function f1(){
function f2(){
function f3(){
console.log(a)
}
f3();
}
f2();
}
f1();

var a=3;
function f1(){
var a=6;
function f2(){
var a=5;
function f3(){
var a=4;
/*当函数中使用给某个变量时,优先在自己的作用域中查找
如果找不到就会向上一层作用域查找
如果找不到继续往上一层查找,直到全局作用域
如果还找不到直接报错
这就是→作用域链*/
console.log(a)
}
f3();
}
f2();
}
f1();
</script>

转载请注明:大灰牛博客 » 作用域及作用域链