




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深化理解(function(). )();_ 许多伴侣不清晰(function(). )();这几种写法各代表是什么意思,下面我通过本教程给大家简洁介绍下(function(). )();学问,感爱好的伴侣跟着我一起学习吧 1.他叫做立刻运行的匿名函数(也叫立刻调用函数) 2.当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立刻运行起来!有木有很奇妙哦 3.要用法一个函数,我们就得首先声明它的存在。而我们最常用的方式就是用法function语句来定义一个函数 4.Function 对象 Function对象是JavaScript里面的固有对象,全部的函数事实上都是一个Funct
2、ion对象。 我们先看看,Function对象能不能挺直运 用构造函数创建一个新的函数呢?答案是确定的。 var abc = new Function(x,y,return x*y;); alert(abc(2,3); / 6 5.匿名函数就是没著名字,那么就引申到我们应当如何去调用他们的问题(O_O)? 匿名函数的调用 var abc=function(x,y) return x+y; alert(abc(2,3); / 5 上面的操作其实就等于换个方式去定义函数,这种用法是我们比较频繁遇到的。 例如我们在设定一个DOM元素大事处理函数的时候,我们通常都不会为他们定名字,而是给予它的对应大事
3、引用一个匿名函数。 匿名函数的调用 用法()将匿名函数括起来,然后后面再加一对小括号(包含参数列表)。 alert(new Function(x,y,return x*y;)(2,3);/ 6 6.小括号的作用? 小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值事实上也就是小括号中表达式的返回值。 所以,当我们用一对小括号把匿名函数括起来的时候,事实上小括号对返回的,就是一个匿名函数的Function对象。 因此,小括号对加上匿名函数就犹如著名字的函数般被我们取得它的引用位置了。所以假如在这个引用变量后面再加上参数列表,就会实现一般函数的调用形式。 7
4、.函数声明、函数表达式、匿名函数 函数声明:function fnName () ;用法function关键字声明一个函数,再指定一个函数名,叫函数声明。 函数表达式 var fnName = function () ;用法function关键字声明一个函数,但未给函数命名,最终将匿名函数给予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。 匿名函数:function () ; 用法function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有许多作用,给予一个变量则创建函数,给予一个大事则成为大事处理程序或创建闭包等等。 函数声明和函数表达式不
5、同之处在于 一、Javascript引擎在解析javascript代码时会函数声明提升(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必需等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式 二、函数表达式后面可以加括号立刻调用该函数,函数声明不行以,只能以fnName()形式调用 。 栗子 fnName(); function fnName() . /正常,由于提升了函数声明,函数调用可在函数声明之前 fnName(); var fnName=function() . /报错,变量fnName还未保存
6、对函数的引用,函数调用必需在函数表达式之后 栗子 var fnName=function() alert(Hello World); (); /函数表达式后面加括号,当javascript引擎解析到此处时能立刻调用函数 function fnName() alert(Hello World); (); /不会报错,但是javascript引擎只解析函数声明,忽视后面的括号,函数声明不会被调用 function() console.log(Hello World); (); /语法错误,虽然匿名函数属于函数表达式,但是未进行赋值操作, /所以javascript引擎将开头的function关键字
7、当做函数声明,报错:要求需要一个函数名 要在函数体后面加括号就能立刻调用,则这个函数必需是函数表达式,不能是函数声明。 栗子 (function(a) console.log(a); /firebug输出123,用法()运算符 )(123); (function(a) console.log(a); /firebug输出1234,用法()运算符 (1234); !function(a) console.log(a); /firebug输出12345,用法!运算符 (12345); +function(a) console.log(a); /firebug输出123456,用法+运算符 (123
8、456); -function(a) console.log(a); /firebug输出1234567,用法-运算符 (1234567); var fn=function(a) console.log(a); /firebug输出12345678,用法=运算符 (12345678) 可以看到输出结果,在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立刻执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式,消退了javascript引擎识别函数表达式和函数声明的歧义,告诉javascript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立刻执行函数的代码。 加括号是最平安的做法,由于!、+、-等运算符还会和函数的返回值进行运算,有时造成不必要的麻烦。 不过这样的写法有什么用呢? javascript中没用私有作用域的概念,假如在多人开发的项目上,你在全局或局部作用域中声明白一些变量,可能会被其他人不当心用同名的变量给掩盖掉,依据javascript函数作用域链的特性,可以用法这种技术可以仿照一个私有作用域,用匿名函数作为一个“容器”,“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function() )()内部定义的变量不会和外部的变量发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国射频光端机数据监测研究报告
- 2025至2030年中国导电棒数据监测研究报告
- 2025至2030年中国大马力起动单向器数据监测研究报告
- 2025至2030年中国卧式缠绕机数据监测研究报告
- 2025至2030年中国会议记事本数据监测研究报告
- 2025至2030年中国三红五寸参种数据监测研究报告
- 2025至2030年中国CATV光发射组件数据监测研究报告
- 2025年中国静电手动喷粉设备市场调查研究报告
- 2025年中国醋酸碘苯市场调查研究报告
- 2025年中国羟基膦酸基乙酸市场调查研究报告
- SolidWorks全套入门教程
- 企业财务会计(第二版)高职PPT完整全套教学课件
- 3dsMax20223维动画制作标准教程PPT完整版全套教学课件
- 《公路工程计量与计价》说课草稿
- NXT上的PoP贴装课件
- 2023-2024苏教版小学数学5五年级下册(全册)教案设计
- 批评他人发言稿(通用12篇)
- 上海实验学校幼升小测试题资料
- 一年级美术课后服务教案-1
- 重大疾病保险的疾病定义使用规范(2020年修订版)-
- RB/T 040-2020病原微生物实验室生物安全风险管理指南
评论
0/150
提交评论