深入研究javascript的匿名函数

深入研究javascript的匿名函数

ID:13504113

大小:61.00 KB

页数:12页

时间:2018-07-23

深入研究javascript的匿名函数_第1页
深入研究javascript的匿名函数_第2页
深入研究javascript的匿名函数_第3页
深入研究javascript的匿名函数_第4页
深入研究javascript的匿名函数_第5页
资源描述:

《深入研究javascript的匿名函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、深入研究JavaScript的匿名函数jQuery片段:(function(){//这里忽略jQuery所有实现})();(function(){//这里忽略jQuery所有实现})();  半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的。然而,在看到源码的第一眼,我就迷糊了。为什么只有一个匿名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN。结果相信现在很多人都很清楚了(因为在我之后也不乏来者,呵呵~)。当一个匿名函数被括

2、起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来!真神奇哦!  嘿嘿!胡闹到此为止。在这一节,我们碰到的jQuery片段是一组立即运行的匿名函数。而这种用法在论坛上也曾引起过激辩——这段代码究竟属不属于闭包呢?带着这个疑问,我们从基础开始,分析每个关键要素,寻找属于自己的答案。(没错,自己的答案!在我看来,所有理论只是形式,只要它有利于我们的应用实现,就是可取的——黑猫白猫,抓到老鼠的就是好猫!)  要说匿名函数,我们首先要由函数本身说起。函数的定义如下:函数是将唯一的输出值赋予给每一输入的“法则

3、”。  当然,这只是数学上的定义。但是,在计算机编程语言中,函数的定义也八九不离十。因为,我们都知道,计算机中的函数,也类似数学定义中的描述,它是将输入的若干数据,经过代码设定的逻辑操作处理后,返回唯一的输出的一组代码组合块。——当然,特例是,输入的数据为空或输出的数据为空,或者两者都为空。  下面,我们先初步了解一下和匿名函数相关的概念。函数声明(function语句)  要使用一个函数,我们就得首先声明它的存在。而我们最常用的方式就是使用function语句来定义一个函数,如:functionabc()

4、{//codetoprocess}functionabc(){//codetoprocess}  当然,你的函数也可以是带参数的,甚至是带返回值的。functionabc(x,y){returnx+y;}functionabc(x,y){returnx+y;}  但是,无论你怎么去定义你的函数,JS解释器都会把它翻译成一个Function对象。例如,你在定义上面的其中一个例子的函数号,再输入如下代码:alert(typeof(abc));//"function"  你的浏览器就会弹出提示框,提示你abc是一

5、个Function对象。那么Function对象究竟是什么呢?Function对象  Function对象是JavaScript里面的固有对象,所有的函数实际上都是一个Function对象。关于这个方面的讨论,我们留到下一个专题节。我们先看看,Function对象能不能直接运用构造函数创建一个新的函数呢?答案是肯定的。例如:varabc=newFunction("x","y","returnx*y;");alert(abc(2,3));//"6"varabc=newFunction("x","y","ret

6、urnx*y;");alert(abc(2,3));//"6"  相信大家现在对如何声明一个函数应该是有所了解了。那么什么才是匿名函数呢?声明匿名函数  顾名思义,匿名函数就是没有实际名字的函数。例如,我们把上面的例子中,函数的名字去掉,再判断一下他是不是一个函数:alert(typeoffunction(){});//"function"alert(typeoffunction(x,y){returnx+y;});//"function"alert(typeofnewFunction("x","y","r

7、eturnx*y;"))//"function"alert(typeoffunction(){});//"function"alert(typeoffunction(x,y){returnx+y;});//"function"alert(typeofnewFunction("x","y","returnx*y;"))//"function"  我们可以很容易地看到,它们全都是Function对象,换言之,他们都是函数,但是他们都有一个特点——没有名字。所以我们把他们称作“匿名函数”。然而,正因为他们没有“名

8、字”,我们也没有办法找到他们。这就引申了如何去调用一个匿名函数的问题了。匿名函数的调用  要调用一个函数,我们必须要有方法定位它,引用它。所以,我们会需要帮它找一个名字。例如:varabc=function(x,y){returnx+y;}alert(abc(2,3));//"5"  上面的操作其实就等于换个方式去定义函数,这种用法是我们比较频繁遇到的。例如我们在设定一个DOM元素事件处理函数的时候,我们通常都不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。