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

初识javascript 闭包和变量提升

时间:2017-06-18 15:07:03      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:blog   inf   全局   global   closure   java   console   span   nbsp   

先上一小段代码:

 1  function outFun(){
 2         var num = 2;
 3         function inFun(){
 4             console.log(num);
 5         }
 6         return inFun;
 7     }
 8     var out = outFun();
 9     out();//2,这里能够访问,其实是把num这个变量往上面一层提升了一下,out()往里面执行了一层。刚刚好在同一层。
10     console.log(num);//浏览器报错,不能访问outFun函数里面的局部变量num

敲黑板,说概念,通俗的说:闭包就是有权访问另外一个函数作用域变量的函数。

再说一个变量提升的概念吧;

1 var scope="global";  
2 function scopeTest() { 
3     console.log(scope);  
4     var scope="local";  
5 }  
6 scopeTest(); //undefined

相当于下面的代码:

var scope="global";  
function scopeTest() {  
    var scope;  //但是如果没写var ,scope就是全局变量,不是局部变量了。
    console.log(scope);  
    scope="local";  
}  
scopeTest(); //undefined

原文链接:http://www.cduyzh.com/js-closure/

 

初识javascript 闭包和变量提升

标签:blog   inf   全局   global   closure   java   console   span   nbsp   

原文地址:http://www.cnblogs.com/weihuan/p/7044215.html

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