在 Javascript 中,函数是第一类对象。一等函数意味着当该语言中的函数被视为任何其他变量时。

例如,在这种语言中,一个函数可以作为参数传递给其他函数,可以由另一个函数返回,也可以作为一个值分配给变量。例如,在下面的示例中,分配给侦听器的处理函数

const handler = () => console.log('This is a click handler function');
document.addEventListener('click', handler);
复制代码

函数实际上是对象,每个函数都是Function类型的实例,而Function也有属性和方法,跟其他引用类型一样。因为函数是对象,所有函数名就是指向函数对象的指针,而且不一定与函数本身紧密绑定。

函数通常以函数声明的方式定义;定义函数的语法是函数表达式。注意这里的函数末尾是有分号的,与任何变量初始化语句一样。不推荐使用Function构造函数来定义函数,因为代码会被解释两次:

  1. 第一次是将它当作常规ECMAScript代码;

  2. 第二次是解释传给构造函数的字符串。

小结:

  1. 一个函数可以作为参数传递给其他函数;

  2. 一个函数可以由另一个函数返回;

  3. 一个函数可以作为一个值分配给变量。

未完结!更多内容尽情期待下一节~

【深入理解JS核心技术】欢迎各位观众老爷,求点赞,求关注,求转发~

低调务实优秀中国好青年 (简介) && 附加答案

中文 | English

一个 ☝️ 正经的前端学习 开源 仓库,启发来自  淘宝大佬  @冴羽 ,初心做一个真正能帮助到大家的仓库。一个人可以走的更快,但一群人才能走的更远。(非常口语化的,手写总结)

欢迎大家前来讨论,如果觉得对你的学习有一定的帮助,欢迎点个Star (此仓库每天都会准时更新)- vx联系: xiaoda0423

【深入理解JS核心技术】11. 什么是一级函数相关推荐

  1. 【深入理解JS核心技术】2. 什么是原型链?

    原型链是用于在现有对象的基础上构建新类型的对象.它类似于基于类的语言中的继承. 对象实例的原型可以通过 Obeject.getPrototypeOf(object) 或 proto 属性获得,而构造函 ...

  2. 【学习笔记】深入理解js原型和闭包(11)——执行上下文栈

    继续上文的内容. 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境.当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境.处于活动状态的执行 ...

  3. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  4. 彻底理解js中this

    相关博文:http://blog.csdn.net/libin_1/article/details/49996815 彻底理解js中this的指向,不必硬背. 首先必须要说的是,this的指向在函数定 ...

  5. 深入理解js的执行机制

    写在前面 javascript在浏览器中被浏览器的js引擎执行解释,从执行上下文的角度分析一下js的执行机制 执行上下文 执行上下文被定义成javascript引擎在处理理解js代码时,所创建的一个动 ...

  6. 深入理解Js中的this

    深入理解Js中的this JavaScript作用域为静态作用域static scope,但是在Js中的this却是一个例外,this的指向问题就类似于动态作用域,其并不关心函数和作用域是如何声明以及 ...

  7. 深入理解MySQL核心技术

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  8. 《Java工程师成神之路》深入理解Java核心技术(基础篇)

    学习目标: 深入理解Java核心技术(基础篇) 学习内容: 1.面向对象的五大基本原则 (1)单一职责原则:一个类应该有且只有一个去改变它的理由,这意味着一个类应该只有一项工作. (2)开放封闭原则: ...

  9. 【学习笔记】深入理解js原型和闭包(5)——instanceof

    又介绍一个老朋友--instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...

  10. 简单理解js闭包、类型引用....第一章

    js 闭包函数.类型引用.this指向.对象原型链...这些东西让我们对js又爱又恨!js虐我千百遍,我待js如初恋. 很多初学者一开始会觉得这些概念没什么用,导致对这些东西产生一种抵抗力.接下来我们 ...

最新文章

  1. React模式:集中式PropTypes
  2. CVPR2020 | 反传统的无监督人脸旋转方案:旋转-渲染
  3. 全局的过滤器, 进行时间的格式化——所谓的全局过滤器,就是所有的VM实例都共享的 || 如何自定义一个私有的过滤器(局部)
  4. 数组的一些与遍历相关的方法总结
  5. [root@dg1 ~]# su - grid ---切换到grid用户
  6. linux的系统监视器图片_Linux中一个高效的资源监控器Bpytop
  7. fir.im分发平台 二维码合并
  8. RS232引脚定义及串口通信中与USB等转接
  9. Food Webs - 网络中度及集聚系数实现
  10. html 图层嵌套特点,ps图层有哪几种类型?
  11. 多系统导航电文下载与分析
  12. 国外大牛推荐:计算机专业人士必读好书(30本经典)
  13. jzy3D从入门到弃坑_2使用jzy3D0.9画2D散点图
  14. Ajax的简单使用与JSON数据格式
  15. Skipping MapperFactoryBean with name ‘xxx‘ and ‘xxx‘. Bean already defined with the same name’警告
  16. memsql 基本完全免费了
  17. 人脸识别门禁为何倍受青睐?
  18. ajax-jq-php(mysql)四级省市级联
  19. princeton 本科cos318操作系统教程-1引言
  20. PCA分析及CNS级别作图

热门文章

  1. 高分GF与环境HJ系列国产卫星遥感影像数据图像免费批量下载方法
  2. AutoCad窗口错误调整
  3. Fama-French五因子模型实用攻略
  4. eclipse:STS下载使用(STS(Spring Tool Suite)其实是个被包装过的eclipse)
  5. linux虚拟键盘onboard设置,求助,安装屏幕虚拟键盘onboard出错。
  6. C源程序完整编译过程
  7. bpsk在瑞利信道matlab,请教BPSK在瑞利信道下的误码率仿真
  8. 商业计划书范文3000_大学生商业计划书范文
  9. java面试宝典app_Java面试宝典
  10. 项目1-员工(绩效)信息管理系统