1. 函数也是一种类型

要理解匿名函数,首先需要理解函数也是一种类型。

所以函数可以赋值给变量,如下:

// 将数字类型值赋给变量

var num = 1;

// 将函数类型值赋给变量

var hello = function () {

console.log("hello world");

}

// 执行num表达式

num++;

// hello

hello();

由于数字类型和函数类型不同,数字类型可以进行运算,例如上面的++,而函数类型可以进行调用运算,就是()。

2. 匿名函数

一般的函数是需要命名然后调用的,如下例中,函数被命名为add,然后通过add()调用。

function add(a, b) {

return a + b;

}

var sum = add(1, 2);

也可以不命名,直接定义一个函数,这种方式叫做函数表达式。由于函数表达式在定义函数时没有命名,所以函数表达式是一种匿名函数。

var add = function(a, b) {

return a + b;

}

var sum = add(1, 2);

以上两种方式,执行结果是同样的。

3. 自执行匿名函数

有时候我们总是想偷懒,在上面的例子中,如果我们的add函数再整个使用期间,只调用一次,那就没必要再专门弄个变量add来指向函数了。

我们可以通过自执行匿名函数,直接执行当前的函数表达式,代码如下:

var sum = (function (a, b) {

return a + b;

})(1, 2);

这里就需要解释下了,通过括号将函数包裹起来,这样的含义就是立即调用的意思,然后后面的(1,2)就是当前调用函数的参数列表。

其实就是通过括号包裹函数表达式,实现自执行效果。

4. 小结

匿名函数是一种更加简洁,更加能体现JavaScript类型规范的函数实现语法,只要想到函数也是一种类型,就比较容易理解了。

java调用js匿名函数参数,JavaScript匿名函数、自执行匿名函数相关推荐

  1. android java 调用js_android WebApp 集成方式怎么使用java调用js

    WebAPP集成,本地打包,有两种方式java js通信 1.DCloud插件模式,参考SDK DEMO的H5Plugin, Java:继承StandardFeature写接口. public cla ...

  2. java调用js匿名函数参数,js匿名函数作为函数参数详解

    由衷的感叹,js真是烦. 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长. 继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的 ...

  3. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  4. Java调用JS,JS调用JAVA

    JAVA 调用 JS //Java端 //带参数的函数调用 final String exes = "cc.Global.setEcADVal('"+ var1 + "' ...

  5. java 调用 js性能_太快了,太变态了:什么会影响Java中的方法调用性能?

    java 调用 js性能 那么这是怎么回事? 让我们从一个简短的故事开始. 几周前,我提议对Java核心libs邮件列表进行更改 ,以覆盖当前final一些方法. 这刺激了一些讨论主题-其中之一是其中 ...

  6. html动态加载js方法,原生JS实现动态加载js文件并在加载成功后执行回调函数的方法...

    本文实例讲述了原生JS实现动态加载js文件并在加载成功后执行回调函数的方法.分享给大家供大家参考,具体如下: 有的时候需要动态加载一个javascript文件,并且在加载成功后执行回调函数(例如文件中 ...

  7. GeoJSON转EsriJSON,Java调用js库实现

    对于arcgis对象与geojson的转换,Esri官方有现成的实现,不过是基于js的,对应的github如下: https://github.com/Esri/arcgis-to-geojson-u ...

  8. java调用c dll,指针参数和结构体参数搞定

    基于上两篇java调用dll的文章,我做了更为复杂的参数传递,指针变量和结构体变量,下面给出源码 vc++中的工程名称是SMSXIAO Source Files(源文件):.c文件名:sms.c 源码 ...

  9. c语言函数参数从右往左,C语言函数入参压栈顺序为什么是从右向左?

    看到有人提问到,在处理printf/cout时,压栈顺序是什么样的?大家都知道是从右往左,也就是说从右往左的计算,但是,这里的计算不等于输出. a++和++a的压栈的区别:在计算时,遇到a++会记录此 ...

最新文章

  1. 追寻大师的脚步 | 张正友忆华人计算机视觉宗师 Thomas S. Huang
  2. 数据分析利器--Pandas
  3. 深入理解Python字符编码--转
  4. MySQL连接相关问题(查看及设置连接数)
  5. QT学习:网络应用开发练习(简单网页浏览器)
  6. 一个程序员写多门语言不会记串么?
  7. SAP HANA CLOUD和aws一个实际项目中的性能比较
  8. django contrib 包简介
  9. Eclipse在线安装Hibernate插件
  10. 201703-1-分蛋糕
  11. (hdu 1568) Fibonacci
  12. 电源大师课笔记 3.5
  13. C#中pdf转word
  14. 封装0805跟0603有什么区别,只存在大小的区别么???
  15. .NET程序员我是如何通过一个产品在2年内买车买房
  16. oracle的执行图标不见了,开始菜单oracle集成管理工具的图标没了怎么办
  17. mysql auto_increment 原理_MySQL auto_increment间隙问题
  18. Tmall商品详情API接口
  19. 【题解】P2678 [NOIP2015 提高组] 跳石头
  20. B站又被搞了,这次全部下载它

热门文章

  1. 为什么keep2share fileboom开了会员文件下载速度依然很慢?
  2. 计算机类综合素质测评考什么,事业单位考试综合素质测试考试内容_综合素质测试考什么?...
  3. ios微信清理(已越狱)
  4. MacBook用windows系统是CrossOve虚拟机软件区别优势
  5. 初学HTML5——表格(值日表)
  6. android五子棋编程教程全集,android简单自定义View实现五子棋
  7. mstsc Windows局域网内远程桌面连接
  8. qichacha/知乎/国家统计局最新4级地区划/百度地图API获取经纬度/Google play app评论等分数据爬取
  9. 排序算法总结(内排序)
  10. 你真的懂Redis与MySQL双写一致性如何保证吗?