一、回调函数

1.回调函数:其实就是将一个函数作为参数传递到另一个函数中,当另一个函数执行后,再执行当作参数传入的那个函数,被当作参数的那个函数就是回调函数。

            function fn(a,b,fm) {var sum = a+breturn fm(sum)}function fm(n) {var pow = n*nconsole.log(pow)}fn(2,3,fm)

分析:先是fn(2,3,fm)调用fn函数,传入2,3,fm三个参数,并且fm参数是外边定义的函数,再运算将2+3的值赋值给sum变量,即sum=5;然后返回fm(sum),也就是将5作为参数再传入fm函数,然后执行n*n将结果赋值给pow变量,并打印。

总的说就是将一个函数也作为参数传入到另一个函数中,待其执行完毕后再执行传入的函数。

2.笔试题

            function sum() {if(arguments.length == 2) {return arguments[0] + arguments[1]}else if(arguments.length == 1) {var first = arguments[0]return function(second) {return first + second}}}console.log(sum(2,3)) console.log(sum(2)(3)) 

分析:首先第一次sum(2,3)调用函数是传入的两个参数,满足实参个数等于2的条件,因此直接返回了arguments[0] + arguments[1]的值,也就是2+3的值,也就是5,所以第一次打印结果为5.

第二次sum(2)(3)调用时,要先分开,先是sum(2)调用sum函数,它不满足实参个数等于2,但是满足了实参个数等于1,所以变量first就等于了传入的参数2;然后函数返回了另一个函数,也就是sum(2)的结果为function(second)函数,因此sum(2)(3)其实就相当于function(3)调用函数;然后返回first+second的值,但是此函数中没有first,于是到它的上一层函数中找(这里需要注意的是函数运行是在函数生成和定义的地方运行的,要找对作用域),first=2;所以first+second=5,打印结果为5.

二、函数自调用:

1、自调用函数是一次性函数,是指在函数声明的同时调用,页面加载完毕,函数也执行完毕。

2.函数自调用的作用:开启一个新的作用域,避免命名冲突。

3.函数自调用的方法:

1.使用()实现自调用

            (function(n) {if(n<=1){console.log(1)}else{console.log(n)}})(10)

2.使用 !实现自调用

            !function(n) {if(n<=1){console.log(1)}else{console.log(n)}}(10)

3.使用  + 实现自调用

            +function(n) {if(n<=1){console.log(1)}else{console.log(n)}}(10)

4.使用 - 实现自调用

            -function(n) {if(n<=1){console.log(1)}else{console.log(n)}}(10)

JavaScript——回调函数 + 函数自调用相关推荐

  1. javascript回调函数笔记

    来源于:https://github.com/useaname/blog-study 在Javascript中,函数是第一类对象.意味函数可以像对象一样按照第一类被管理使用. 回调函数是从一个叫函数式 ...

  2. 理解javascript 回调函数

    理解javascript 回调函数 原文:理解javascript 回调函数 ##回调函数定义 百度百科:回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一 ...

  3. javascript回调函数(模式)原理和示例深入分析

                                                                                     广大网友读懂了我之前论述的javasc ...

  4. 重新理解javascript回调函数

    把函数作为参数传入到另一个函数中.这个函数就是所谓的回调函数 经常遇到这样一种情况,某个项目的A层和B层是由不同的人员协同完成.A层负责功能funA,B层负责funcB.当B层要用到某个模块的数据,于 ...

  5. 高级JavaScript Day03 | 函数定义和调用、this、严格模式、高阶函数、闭包、递归

    1.函数的定义和调用 1.1 函数的定义方式 1.函数的声明方式 function关键字 (命名函数) // 1. 自定义函数(命名函数)function fn() {}; 2.函数表达式 (匿名函数 ...

  6. 理解javascript 回调函数,闭包

    回调 jQuery中一直有使用回调函数,比如:$("#btn").click(function() {alert("button clicked"); }); ...

  7. javascript 回调函数

    javascript 回调函数 回调函数 作为参数传递的函数 示例代码 let x = function () {console.log("执行回调函数") }let y = fu ...

  8. C#代码与javaScript函数的相互调用

    C#代码与javaScript函数的相互调用 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4 ...

  9. JavaScript函数的各种调用模式

    函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了.熟悉JavaScript的人应该都知道,同 ...

  10. C#与Javascript变量、函数之间的相互调用2008年11月28日 星期五 05:28 P.M.1.如何在JavaScript访问C#函数?

    C#与Javascript变量.函数之间的相互调用 2008年11月28日 星期五 05:28 P.M. 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3 ...

最新文章

  1. 网络营销外包——网站搜索框设计不同人群网络营销外包有不同设计
  2. ntu part-time phd 信息整理
  3. opera在我的博客发不了帖子,郁闷
  4. java编程有什么独特之处?
  5. arcpy实现空间查询_「实战系列」GP+Roaringbitmap,亿级会员十万级标签毫秒级查询...
  6. ecshop 模板标签
  7. 细数微软 Teams 的 14 宗“罪”!
  8. 红帽linux企业版6的进程,红帽企业版 Linux 6 设备映射多路径
  9. Scikit-Learn (浅谈PCA降维算法)
  10. 《近世代数》课程感想
  11. Nao机器人语音对话
  12. opencv马赛克python实现
  13. 中国各省的简称及省会
  14. 【壁纸】动漫绝美壁纸
  15. 知乎上的100条简短深刻的回答
  16. OpenGl法向量计算
  17. java遍历mysql数据库_java mysql 遍历
  18. 块交织器5×5 verilog设计及仿真实现
  19. P3084 照片 [差分约束]
  20. SAP甲方历程回顾-01 2017年转到甲方的故事~从乙方离职

热门文章

  1. 新生儿黄疸高怎么办?
  2. 走出3个新生儿喂养误区,新手爸妈变高手
  3. 数据库添加外键报1061错误
  4. 计算机灰尘过多影响,电脑主机灰尘过多怎么解决 如何清理主机灰尘【详解】...
  5. JS面试八股文知识总结(最新)
  6. Python实现QQ PC端给好友发送消息
  7. [BZOJ1123]:[POI2008]BLO(塔尖)
  8. windows批处理 (cmd/bat) 编程详解
  9. iOS拍照后存储照片到相册中
  10. 计算机教育多元化,高校非计算机专业计算机教育多元化【计算机教育论文】