JavaScript-头等函数(头等公民)
头等函数(头等公民)
概念
函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中
测试代码
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-头等函数(头等公民)相关推荐
- Go语言系列——31-自定义错误、32-panic和recover、33-函数是一等公民(头等函数)、34-反射、35-读取文件、36-写入文件
文章目录 31-自定义错误 使用 New 函数创建自定义错误 使用 Errorf 给错误添加更多信息 使用结构体类型和字段提供错误的更多信息 使用结构体类型的方法来提供错误的更多信息 32-panic ...
- 函数和闭包之头等函数
为什么80%的码农都做不了架构师?>>> 什么是头等函数(First-class function)? 关于First-class function的介绍,可以参考:http: ...
- 细说JavaScript异步函数发展历程
2019独角兽企业重金招聘Python工程师标准>>> < The Evolution of Asynchronous JavaScript >外文梳理了JavaScri ...
- JavaScript世界的一等公民
JavaScript世界的一等公民 - 函数 提交新文章 2012年07月11日 09:00 简介 在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言 ...
- javascript 回调函数
javascript 回调函数 回调函数 作为参数传递的函数 示例代码 let x = function () {console.log("执行回调函数") }let y = fu ...
- [译] ES6+ 中的 JavaScript 工厂函数(第八部分)
本文讲的是[译] ES6+ 中的 JavaScript 工厂函数(第八部分), 原文地址:JavaScript Factory Functions with ES6+ 原文作者:Eric Elliot ...
- 【译】JavaScript 工厂函数 vs 构造函数
译者:前端小智 原文:medium.com/@chamikakas- 当谈到JavaScript语言与其他编程语言相比时,你可能会听到一些令人困惑东西,其中之一是工厂函数和构造函数. 想优质文章请猛戳 ...
- 理解javascript 回调函数
理解javascript 回调函数 原文:理解javascript 回调函数 ##回调函数定义 百度百科:回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一 ...
- 为什么使用JavaScript eval函数是个坏主意?
eval函数是一种动态生成代码的强大而简便的方法,那么有哪些警告? #1楼 我知道这个讨论很古老,但是我真的很喜欢Google的这种方法,并希望与他人分享这种感觉:) 另一件事是,您越了解越多,您就会 ...
- JavaScript中函数作为另一个函数的参数的时候它存在于哪个作用域
一直对函数作为参数被传递进另外一个函数理解的不是很清除.先看下这段代码吧: function test(fn){var bar = 1;fn(); } var bar = 99; test(funct ...
最新文章
- docker logs 容器日志文件路径查看
- boost::random模块实现如何使用随机数库的简短演示程序
- 使用 HttpWebRequest 向网站提交数据
- HttpServletRequest类用途
- 视觉测试_视觉设计流行测验
- 在Ocelot中使用自定义的中间件(一)
- 管理口地址 ibm_WAN口有IP地址上不了网如何解决 WAN口有IP地址上不了网解决方法【详解】...
- 系统架构设计师 - 软件架构设计 - 基于架构开发方法 ABSD (Architecture-Based Soft Design)
- Java7并发编程指南——第二章:线程同步基础
- jsp 通过cookie 记住用户名
- Swift - 设置应用程序图标的提醒个数(右上角小红圈)
- 机器人控制学习机器编程代码_机器学习正在征服显式编程
- [Hadoop]-Yarn-调度器篇
- 如何设置计算机屏幕不正,显示器颜色不正常如何调_电脑显示屏的颜色不对如何处理...
- 手把手带你快速实现直播聊天室
- 毕设论文-word格式问题
- 计算GPS坐标的直线距离
- 欧拉公式以及凉鞋问题
- 品牌建设—长效且动态的关系管理进程:赫联电子亚太区
- 穷与焦虑。文/江湖一剑客
热门文章
- 个人发卡网源码(可集成企业和彩虹自动发卡系统代码)+搭建文档模板
- 什么是心理学?它的目标是什么?
- 【C++】C++的工具库
- 5.2万个!5G上市企业专利最新排行!
- 百度Apollo(二):障碍物感知模块
- 入手4s 浅析siri 让siri更懂你
- 计算机怎么看事件管理,如何查看Windows7系统的事件日志?查看Win7事件日志方法 电脑维修技术网...
- 恒盛策略|汽车制造板块飙升近4%,概念股批量涨停!
- 高并发策略之限流:计数器、漏桶、令牌桶 三大算法的原理与实战(史上最全)
- JAX-RS @Path