JS 2期 深入之闭包面试题讲解

147 阅读1分钟
   function createClosure (){
       var name = "jack";
       return {
           setStr : function(){
               name = "rose";
           },
           getStr : function(){
               return name + ":hello";
           }
       }
    }
    var builder = new creatClousure();
    builder.setStr();
    console.log(builder.getStr());//rose:hello

作用域链

每个函数都有自己的执行期上下文,代码在函数环境执行的时候,会访问变量,此作用域没有时,就会往其父级作用域查找,当找到时,引用,如没有的话,就会引用垃圾回收机制(标记清除)进行删除。形成的这种链状存储的东西叫做作用域链

作用域

作用域是指函数和变量的作用范围,函数内声明的变量在函数体内始终是可见的