javascriptjquery闭包概念

上传人:宝路 文档编号:2723132 上传时间:2017-07-26 格式:DOC 页数:3 大小:31KB
返回 下载 相关 举报
javascriptjquery闭包概念_第1页
第1页 / 共3页
javascriptjquery闭包概念_第2页
第2页 / 共3页
javascriptjquery闭包概念_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《javascriptjquery闭包概念》由会员分享,可在线阅读,更多相关《javascriptjquery闭包概念(3页珍藏版)》请在金锄头文库上搜索。

1、【转载】偶尔听人说 javascript 闭包,让我联想起以前学编译原理和数字逻辑里讲的闭包,以前上课讲的闭包很难懂,而且含有递归的意思在里面,现在不想再查看里面的闭包概念。但 javascript 我是经常要用,所以是要懂这里面的概念。其实 javascript 里的闭包概念很简单,就是函数用到外部变量,不需要传参就可以获取。举个例子:var sMessage = Hello world; function sayHello() alert(sMessage); sayHello(); addNumber(1,2);var iBaseNum = 10; function addNumber(

2、iNum1, iNum2) function doAddition() alert(iNum1 + iNum2 + iBaseNum); return doAddition(); function a()var i=0;function b()alert(+i); return b;var c = a();c();c();第一个函数sayHello 没有传参数,直接利用了 sMessage 变量,这个就叫做闭包。第二个函数复杂点,里面有个 doAddition 也是闭包函数,他不需要参数,直接在执行环境中获取 iNum1,iNum2,还有外部变量 iBaseNum。第三个函数 是能保护 i 变

3、量的访问,并且一直保存 i在内存中,可以一直增加。(闭包的一个经典用法)jquery 中闭包也差不多,先给个例子你也许会问(functio n($)$(div p).click(function()alert(cssrain!);)(jQuery); /一个闭包这是什么写法啊?别急,我也是请教了upc ,才稍微懂了点。这里面的$只是形参,但 jquery 是全局变量,所以不需要调用该函数就会自动执行,或者分两步就是转化成正常的函数,先写函数,后调用。如下所示其实:(function($)$(div p).click(。);)(jQuery); 就是等于function tempFunction

4、($) /创建一个以$为形参的函数$(div p).click(.);TempFunction(jQuery); /传入实参 jQuery 执行 函数.干脆直接这么写 ,算了(function(cssrain)cssrain(div p).click(. );)(jQuery); /一个闭包闭包的基本写法:(function()do someting)();/这个你就理解为定义一个匿名函数并立即执行带参数的话就这样:(function(形参 )do someting)(实参);另外(function()var upc=i am upc)();alert(upc);会提示undefined 。因为闭包后,里面的变量就相当于局部了。闭包的好处:不增加额外的全局变量,执行过程中所有变量都是在匿名函数内部。上面的例子不是很好,跟javascript 的闭包有点混淆,但这确实也是 jquery中的一种闭包。只不过经过 jquery 的加工罢了。如过有什么不对,大家互相讨论,我也是初学者,还有很多不懂得地方。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号