首页 > 代码库 > 初识javascript 闭包和变量提升
初识javascript 闭包和变量提升
先上一小段代码:
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 闭包和变量提升
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。