JavaSript中变量的作用域 闭包的理解
来源:互联网 发布:咋找数据 编辑:程序博客网 时间:2024/05/22 05:10
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript">/* * 1.js中的变量都是公用的. 2.js中没有静态变量 3.闭包:函数内部可以调用函数外部的变量;反之,则不行 */ var r=10; function test1(){ var r2="abc"; //alert(r) } //alert(r2);//不能访问的函数内部的r2 test1(); //嵌套的函数中也ok啦 function test2(num1){ function test3(num2,num3){ return num2+num3+num1; } return test3(10,20) } //alert(test2(30)); //---------循环中的闭包------------------------ function testfun(){ var r=1; var arr=[]; for(var x=0;x<3;x++){ r++; arr[x]=function(){ return r; } } return arr; } alert("testfun:"+testfun()); var arr2=testfun(); alert("arr:"+arr2[0]); alert("arr:"+arr2[1]()); alert("arr:"+arr2[2]()); //==========以上三个弹出框的结果都是4==========/*分析原因: 理解一下在JavaScript中函数是什么? 函数就是一段可执行的代码块,函数也是可以用一个变量表示,比如函数的第二种定义方式 var add=new Function("a","return a+10");底层的本质就是这个函数名指向 了这一段为变量而创建的可执行的代码。 * 首先当testfun函数执行完毕以后,arr[0],arr[1],arr[]中都是存储了相同的 可执行代码块function(){ return r }也就是说上面三个是函数变量而已,要执行它们只需要在变量名称后面加()就ok了 而且这个时候r的值4 当执行arr[0]()相当于执行了这个代码块中的代码。 所以最终的结果return r,当然返回4了。 */</script></head><body></body></html>
0 0
- JavaSript中变量的作用域 闭包的理解
- 理解PHP中变量的作用域
- 理解 Javascript 中变量的作用域
- java中变量作用域的理解
- javascript中的【变量作用域】和【作用域链】以及【闭包】的理解
- 变量的作用域--js闭包
- 理解变量的作用域
- 对于JS语言的深刻理解(变量定义;作用域链;闭包;this)
- 作用域/上下文的理解,闭包的理解
- 理解JavaScript的变量,变量作用域,作用域链
- 关于闭包和变量的作用域的问题
- 包的变量作用域测试说明
- javascript理解之变量作用域与闭包
- 深入理解JavaScript作用域、变量对象、闭包
- javascript理解之变量作用域与闭包
- JavaScript 的变量作用域及闭包
- JavaScript的变量作用域及闭包总结
- js变量的声明、作用域以及闭包
- HandleEvent
- Remove Duplicates from Sorted Array
- Android Native开发(一)JNI
- Android颜色代码
- 随机产生一个限定范围的long型数字
- JavaSript中变量的作用域 闭包的理解
- Samba详细教程
- JavaScript中通过arguments对象实现对象的重载
- OpenSSL 编程方法
- CentOS上搭建FTP服务器[未测试]
- 32.iOS获取设备剩余存储空间
- Merge into
- 关于苹果账号的一些内容
- C++函数调用过程深入分析