JavaScript 53 JavaScript 箭头函数

news2024/12/23 18:48:27

JavaScript

文章目录

      • JavaScript
      • 53 JavaScript 箭头函数
        • 53.1 语法
        • 53.2 `this` 怎么办?
          • 53.2.1 常规函数
          • 53.2.2 箭头函数
        • 53.3 浏览器支持

53 JavaScript 箭头函数

ES6 中引入了箭头函数。

箭头函数允许我们编写更短的函数

53.1 语法

以前定义函数

hello = function() {
  return "Hello World!";
}

在这里插入图片描述

用了箭头函数后:

hello = () => {
  return "Hello World!";
}

在这里插入图片描述

确实变短了!如果函数只有一个语句,并且该语句返回一个值,则可以去掉括号和 return 关键字:

箭头函数默认返回值:

hello = () => "Hello World!";

在这里插入图片描述

**注释:**这仅在函数只有一条语句时才有效。

如果有参数,则将它们传递到括号内:

带参数的箭头函数:

hello = (val) => "Hello " + val;

在这里插入图片描述

事实上,如果只有一个参数,也可以略过括号:

不带括号的箭头函数:

hello = val => "Hello " + val;

在这里插入图片描述

53.2 this 怎么办?

与常规函数相比,箭头函数对 this 的处理也有所不同。

简而言之,使用箭头函数没有对 this 的绑定。

在常规函数中,关键字 this 表示调用该函数的对象,可以是窗口、文档、按钮或其他任何东西。

对于箭头函数,this 关键字始终表示定义箭头函数的对象。

【栗子】

53.2.1 常规函数

对于常规函数,this 表示调用该函数的对象

// 常规函数:
hello = function() {
  document.getElementById("demo").innerHTML += this;
}

// window 对象调用该函数:
window.addEventListener("load", hello);

// button 对象调用该函数:
document.getElementById("btn").addEventListener("click", hello);

在这里插入图片描述

53.2.2 箭头函数

用了箭头函数,则 this 表示函数的拥有者

// 箭头函数:
hello = () => {
  document.getElementById("demo").innerHTML += this;
}

// window 对象调用该函数:
window.addEventListener("load", hello);

// button 对象调用该函数:
document.getElementById("btn").addEventListener("click", hello);

相同的例子,hello函数改为了箭头函数

在这里插入图片描述

使用函数时请记住这些差异。有时,常规函数的行为正是您想要的,如果不是,请使用箭头函数。

53.3 浏览器支持

首个完全支持 JavaScript 箭头函数的浏览器版本:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一位小镇做题家的付费咨询

前几天,有位知乎读者咨询我,感觉很迷茫,不知道做什么。这可能也是大多数在校大学生的状态,忙忙碌碌,浑浑噩噩,不知道该怎么办。 首先,不管从事哪个行业,你的学历一定是亮点。专业的话…

Flutter ChoiceChip 用来实现选择标签效果

程序员如果敲一会就停半天,抱着一杯茶,表情拧巴,那才是在编程,在之前我要实现一级标签效果,我还在苦苦写了好多嵌套的代码,当我看到 Clip 时,泪奔啊,原来一个组件就可以实现&#xf…

(8个方法)解决windows11/10/8/7卡在准备就绪一直转圈

许多用户会遇到Win10安装卡在准备就绪一直转圈的情况或者重装系统准备就绪转圈的问题。也有一些用户反映,Win10准备就绪后黑屏重启,一直循环。一开始大家会耐心等待,但是等了很久后发现没什么用,这该怎么办?本文教你一…

第32讲:MySQL数据库的体系结构组成

MySQL数据库的体系结构组成 MySQL数据库整个体系结构可以分为五个部分,如下图所示: 1)客户端连接器 这一层也是整个MySQL体系中的最上层,包含本地Sock通信和支持大多数客户端到服务端的TCP通信,像JAVA的JDBC、Python、PHP都可以连接到MySQL数据库。 2)数据库连接层 客…

嵌入式分享合集92

一、常用电路基础公式 1.欧姆定律计算 计算电阻电路中电流、电压、电阻和功率之间的关系。 欧姆定律解释了电压、电流和电阻之间的关系,即通过导体两点间的电流与这两点间的电势差成正比。说明两点间的电压差、流经该两点的电流和该电流路径电阻之间关系的定律。该…

2022年了,软件测试已经饱和了?

这个年头找工作跟找对象一样难,咳咳,工作对象都木有,双重打击5555。 关于今年的就业市场,很多人表示特别惨淡,以往简历一投就有大批企业来联系,今年自己投递一大堆简历出去,可能全部都是已读不…

链路状态路由协议OSPF——理解OSPF多区域原理

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.OSPF的多区域 1.OSPF概述 2.生成OSPF多区域的原因 二.OSP…

ArrayList源码解析(JDK8)

文章目录一、ArrayList继承体系二、ArrayList属性三、构造方法1、ArrayList(int initialCapacity)2、ArrayList()3、ArrayList(Collection<? extends E> c)四、ArrayList 相关操作方法1、add(E e)2、add(int index, E element)3、addAll(Collection<? extends E>…

【C++笔试强训】第十八天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6;&a…

Dubbo源码学习(八)ScopeBeanFactory对比Spring 的BeanFactory

目录 1. ScopeBeanFactory与BeanFactory对比 2. 注册Bean 3. 执行一系列的PostProccessor 1. ScopeBeanFactory与BeanFactory对比 ScopeBeanFactory是Dubbo自己定义的管理Bean的一个类, 类似于Spring BeanFactory注册管理Bean的方式&#xff0c; 不同的是Spring BeanFactor…

软考下午第5题——面向对象程序设计——代码填空(老程序员必得15分)

第五个题目分为C 和 Java两个题目&#xff0c;除去编写代码不同&#xff0c;考察的内容是完全相同的&#xff0c;选一个就行。建议Java&#xff0c;因为老程序员最近用的Java肯定对。 题目考察形式为给出类图描述和几乎全部代码&#xff0c;考生关键代码填空即可。 某软件公司…

【数据结构】简单认识:堆

数据结构&#xff1a;堆堆1.堆是什么&#xff1f;2.堆的特性。3.堆的操作原理①堆的插入原理②堆的删除原理堆 1.堆是什么&#xff1f; 堆是特殊的队列&#xff0c;不同于普通队列&#xff0c;从堆中取出元素是依照元素的优先级大小&#xff0c;而不是元素进入队列的先后顺序…

计算机毕业设计(附源码)python疫情防控管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

阿里/华为云服务器centos7.5 java部署环境快速搭建一条龙【git、maven、jdk8、docker安装nginx、mysql、redis】

文章目录linux常用命令汇总视频教程云服务器搭建java部署环境1.安装配置git2.安装jdk和maven下载安装3.安装docker4.安装docker-compose5.编排nginx6.编排mysql7.编排redislinux常用命令汇总 linux常用命令汇总 视频教程 云服务器java环境搭建一条龙&#xff08;1&#xff0…

数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(6)

文章目录前期准备1. 使用绝对路径读取本地Excel数据2. 查看数据前三行3. 查看每一列数据缺失值情况4. 提取日期列含有空值的行5. 输出每列缺失值具体行的情况6. 删除所有缺失值的行7. 绘制收盘价的折线图8. 同时绘制开盘价与收盘价9. 绘制涨跌的直方图10. 让直方图给更细致本章…

MPEG vs JPEG

MPEG 是什么呢&#xff1f;看着很熟悉&#xff0c;于是想起了 FFmpeg。 于是不禁要问&#xff1a;二者有关系吗&#xff1f; FFmpeg 是一个完整的跨平台音视频解决方案&#xff0c;它可以用于处理音频和视频的转码、录制、流化处理等操作。其实是 FFmpeg 取名借鉴了 MPEG&…

UE4 回合游戏项目 02- 创建人物-敌人角色(动画蓝图练习)

在上一节&#xff08;UE4 回合游戏项目 01- 创建人物-玩家角色&#xff09;基础上创建敌人角色的动画蓝图 步骤&#xff1a; 1.创建动画蓝图 选择怪物骨骼 命名为enemy1_AnimBP 2.双击打开enemy1_AnimBP&#xff0c;创建一个新的状态机节点&#xff0c;连接到输出姿势 3.双击…

计算机毕业设计(51)java小程序毕设作品之教室图书馆座位预约小程序系统

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信小程序预约订座小程序&#xff0c;前台用户使用小程序&#xff0c;后台管理使用JavaMysql开发&#xff0c;后台使用了springboot框架&#xff1b;通过后台添加座位类型、座位号&#xff0c;用户通过…

JVM 的发展历程及其基本概念 (一)

一、JVM的基本介绍 1、随着Java7的正式发布&#xff0c;Java 虛拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序。 Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的&#xff0c;它只关心“字节码”文件。也就是说Ja…

java线程简介

文章目录前言Java线程简介多线程的优点线程的优先级线程的状态daemon线程总结前言 很多地方我们都会用到线程&#xff0c;java操作系统的线程本质其实就是&#xff0c;你写了一个线程类&#xff0c;java替你一对一的在操作系统层面创建了一个线程。之前应该是这样的&#xff0…