JS 做用域及做用域链

1、做用域

  在 Javascript 中,做用域分为 全局做用域函数做用域html

  全局做用域:

    代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局做用域。函数

   函数做用域:

    在固定的代码片断才能被访问spa

  

  例子:3d

    做用域

    做用域有上下级关系,上下级关系的肯定就看函数是在哪一个做用域下建立的。如上,fn做用域下建立了bar函数,那么“fn做用域”就是“bar做用域”的上级。code

    做用域最大的用处就是隔离变量,不一样做用域下同名变量不会有冲突。htm

    变量取值:到建立 这个变量 的函数的做用域中取值对象

 

2、做用域链

  通常状况下,变量取值到 建立 这个变量 的函数的做用域中取值。blog

  可是若是在当前做用域中没有查到值,就会向上级做用域去查,直到查到全局做用域,这么一个查找过程造成的链条就叫作做用域链。ip

var x = 10;

function fn(){
    console.log(x);
}

function show(f){
    var x = 20;
    (function(){
       f();    // 10
    })()  
}

show(fn);

  做用域链

 

随笔整理自 http://www.javashuo.com/article/p-bhfvkjfh-z.html
感谢博主分享!
相关文章
相关标签/搜索