码迷,mamicode.com
首页 > 编程语言 > 详细

javascript --学习基础总结

时间:2016-12-21 11:38:42      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:闭包   back   例子   javascrip   blog   script   使用   局部变量   ret   

  闭包

  下面是百度百科的解释:

    闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。

  也就是说一个代码块中使用了自由变量

var d=10;
    function df(){
    console.log(d);//这个时候d就是自由变量了
}

 

  那下面来看一个简单的闭包的例子:

let t1=(function d(){
    var dd=1;
    return function(){
        return dd++;
    };
})();//立即执行
console.log(t1());//1
console.log(t1());//2

  那为什么第一次和第二次方法的值会不同呢?

  其实正是因为在返回的函数中使用了一个自由变量,为了使用这个自由变量,编译器会

    保存function d(){}的执行上下文

   //说静态变量区

    共享function d(){}的变量,这也是为什么第一次是1第二次是2了

 

 

 

javascript --学习基础总结

标签:闭包   back   例子   javascrip   blog   script   使用   局部变量   ret   

原文地址:http://www.cnblogs.com/student-note/p/6207004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!