Jquery的闭包理解--匿名函数--博客园老牛大讲堂
JavaScript的闭包怎样理解?
我以前的博客总是提到匿名函数,其实匿名函数就是闭包的体现。
闭包的好处?--关注博客园老牛大讲堂
//垃圾回收机制
//当函数执行完毕,系统会自动回收函数和其内部局部变量所占的内存,当再次调用函数时重新申请内存
//闭包:函数嵌套时,在内部函数中可以使用外部函数的变量或者形参,并且把内部函数返回给外部函数
//闭包中的变量在内存中永久存在
//当函数执行完毕,系统会自动回收函数和其内部局部变量所占的内存,当再次调用函数时重新申请内存
//闭包:函数嵌套时,在内部函数中可以使用外部函数的变量或者形参,并且把内部函数返回给外部函数
//闭包中的变量在内存中永久存在
总结:一个方法使用另一个方法的值。避免产生更多的变量,占用内存。
1、闭包的例子:
这就是一个闭包例子:
<!DOCTYPE html>//博客园老牛大讲堂 <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script> function bbb(){ var a=1; return function(){ console.log(a++); } } var ccc=bbb();//相当于java上的new一个对象出来。 ccc();//相当于调用bbb类的ccc()方法。 ccc(); </script> </html>
2、匿名函数(闭包)例子:--关注博客园老牛大讲堂
<!DOCTYPE html>//老牛大讲堂 <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script> (function(){ //这就是一个匿名函数 function setContent(){//普通的方法 } slide.prototype.setSelectedCheck = function(){//提供外部的接口,相当于java上提供一个get方法的接口 alert("b"); //可以通过echoSlide.setSelectedChek();调用这个方法。 } function slide(titl,dat,ro,e){//相当于java上的构造方法 alert("a"); } window.echoSlide = slide; })(window) </script> </html>
调用就是:
var ed=new echoSlide();就输入a
ed.setSelectedCheck();调用这个方法,输出b