头等函数(头等公民)

概念

函数可以作为别的函数的参数、函数的返回值赋值给变量存储在数据结构

测试代码

1.作为函数参数

// 1.作为函数的参数
function foo() {console.log('我是foo函数');
}
function bar(fn) {fn();
}
bar(foo);// 我是foo函数

2.作为函数的返回值

// 2.作为函数的返回值
function baz(fn) {return function baa() {console.log('我是baa函数');};
}
baz()();// 我是baa函数

3.赋值给变量

// 3.赋值给变量
var bab = function () {console.log('我是bab函数');
};
var bac = bab;
bac();// 我是bab函数

4.存储在数据结构中

// 4.存储在数据结构中
var arr = [];
function bad() {console.log('我是bad函数');
}
arr.push(bad);
arr[0]();// 我是bad函数

总结

JavaScript的头等函数机制带来了很多的便利

参考

coderwhy前端讲义

JavaScript-头等函数(头等公民)相关推荐

  1. Go语言系列——31-自定义错误、32-panic和recover、33-函数是一等公民(头等函数)、34-反射、35-读取文件、36-写入文件

    文章目录 31-自定义错误 使用 New 函数创建自定义错误 使用 Errorf 给错误添加更多信息 使用结构体类型和字段提供错误的更多信息 使用结构体类型的方法来提供错误的更多信息 32-panic ...

  2. 函数和闭包之头等函数

    为什么80%的码农都做不了架构师?>>>    什么是头等函数(First-class function)? 关于First-class function的介绍,可以参考:http: ...

  3. 细说JavaScript异步函数发展历程

    2019独角兽企业重金招聘Python工程师标准>>> < The Evolution of Asynchronous JavaScript >外文梳理了JavaScri ...

  4. JavaScript世界的一等公民

    JavaScript世界的一等公民 - 函数 提交新文章   2012年07月11日 09:00   简介 在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言 ...

  5. javascript 回调函数

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

  6. [译] ES6+ 中的 JavaScript 工厂函数(第八部分)

    本文讲的是[译] ES6+ 中的 JavaScript 工厂函数(第八部分), 原文地址:JavaScript Factory Functions with ES6+ 原文作者:Eric Elliot ...

  7. 【译】JavaScript 工厂函数 vs 构造函数

    译者:前端小智 原文:medium.com/@chamikakas- 当谈到JavaScript语言与其他编程语言相比时,你可能会听到一些令人困惑东西,其中之一是工厂函数和构造函数. 想优质文章请猛戳 ...

  8. 理解javascript 回调函数

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

  9. 为什么使用JavaScript eval函数是个坏主意?

    eval函数是一种动态生成代码的强大而简便的方法,那么有哪些警告? #1楼 我知道这个讨论很古老,但是我真的很喜欢Google的这种方法,并希望与他人分享这种感觉:) 另一件事是,您越了解越多,您就会 ...

  10. JavaScript中函数作为另一个函数的参数的时候它存在于哪个作用域

    一直对函数作为参数被传递进另外一个函数理解的不是很清除.先看下这段代码吧: function test(fn){var bar = 1;fn(); } var bar = 99; test(funct ...

最新文章

  1. docker logs 容器日志文件路径查看
  2. boost::random模块实现如何使用随机数库的简短演示程序
  3. 使用 HttpWebRequest 向网站提交数据
  4. HttpServletRequest类用途
  5. 视觉测试_视觉设计流行测验
  6. 在Ocelot中使用自定义的中间件(一)
  7. 管理口地址 ibm_WAN口有IP地址上不了网如何解决 WAN口有IP地址上不了网解决方法【详解】...
  8. 系统架构设计师 - 软件架构设计 - 基于架构开发方法 ABSD (Architecture-Based Soft Design)
  9. Java7并发编程指南——第二章:线程同步基础
  10. jsp 通过cookie 记住用户名
  11. Swift - 设置应用程序图标的提醒个数(右上角小红圈)
  12. 机器人控制学习机器编程代码_机器学习正在征服显式编程
  13. [Hadoop]-Yarn-调度器篇
  14. 如何设置计算机屏幕不正,显示器颜色不正常如何调_电脑显示屏的颜色不对如何处理...
  15. 手把手带你快速实现直播聊天室
  16. 毕设论文-word格式问题
  17. 计算GPS坐标的直线距离
  18. 欧拉公式以及凉鞋问题
  19. 品牌建设—长效且动态的关系管理进程:赫联电子亚太区
  20. 穷与焦虑。文/江湖一剑客

热门文章

  1. 个人发卡网源码(可集成企业和彩虹自动发卡系统代码)+搭建文档模板
  2. 什么是心理学?它的目标是什么?
  3. 【C++】C++的工具库
  4. 5.2万个!5G上市企业专利最新排行!
  5. 百度Apollo(二):障碍物感知模块
  6. 入手4s 浅析siri 让siri更懂你
  7. 计算机怎么看事件管理,如何查看Windows7系统的事件日志?查看Win7事件日志方法 电脑维修技术网...
  8. 恒盛策略|汽车制造板块飙升近4%,概念股批量涨停!
  9. 高并发策略之限流:计数器、漏桶、令牌桶 三大算法的原理与实战(史上最全)
  10. JAX-RS @Path