ES6箭头函数和js普通函数的区别整理

普通函数的this指向为:谁调用它this就指向谁,this被不同对象调用是会变的

箭头函数的this指向为:声明该箭头函数时,外层第一个普通函数的this指向谁就固定为谁,不会改变

function foo() {console.log(this)}const obj = {a: 2,foo: function(){console.log(this)}}foo()  //this指向为windowobj.foo() //this指向为对象objlet foo2 = obj.foofoo2()  //this指向为window
let foo = ()=> {console.log(this)}const obj = {a: 2,foo: function () {return ()=>{console.log(this)}}}foo()  //this指向windowobj.foo()()  //this指向对象objlet foo2 = obj.foo()foo2()  //this指向对象obj

箭头函数是匿名函数,不能作为构造函数,不能使用new

function foo() {console.log(this)}new foo()  //windowlet foo2 = ()=>{console.log(this)}new foo2() //报错 Uncaught TypeError: foo2 is not a constructor

箭头函数不绑定arguments,用rest参数...解决

function foo() {console.log(arguments)}foo(1,2,3)  //[1,2,3]let foo2 = ()=>{console.log(arguments)}foo2(1,2,3)  // 报错 Uncaught ReferenceError: arguments is not defined

我们可以使用展开符来获取参数

let foo2 = (...arguments)=>{console.log(arguments)}foo2(1,2,3) //[1,2,3]

箭头函数使用bind、call、apply无效

var a = 1var obj={a:2
}function foo() {console.log(this.a)}foo()  //1foo.call(obj) //2,输出obj.alet foo2 = ()=>{console.log(this.a)}foo2()  //1foo2.call(obj) //1,仍然输出window.a

箭头函数没有原型

var a = ()=>{  return 1;}function b(){  return 2;}console.log(a.prototype);//undefinedconsole.log(b.prototype);//object{...}

箭头函数不能当做Generator函数,不能使用yield关键字

箭头函数更简洁,适合写一些简单函数

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

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

相关文章

红警For Mac(RAM芯片可玩)

1、文件损坏解决版本! 执行以下命令,(注意:命令2应用路径根据实际情况修改) sudo spctl --master-disable sudo xattr -r -d com.apple.quarantine /Applications/红警2尤里复仇M芯片.app2、新系统14,第一…

Oracle Flashback示例集锦

Flashback Table 本例参考Rewind a Table Using Oracle Flashback Table Flashback Table,Flashback Query和Flashback Drop的示例合集可参见这里 首先获得当前的时间,或当前的SCN,以便后续回退使用 -- 获取SCN法1 select DBMS_FLASHBACK.…

孩子都能学会的FPGA:第二十一课——用线性反馈移位寄存器实现伪随机序列

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

腾讯云轻量应用服务器怎么使用宝塔面板?

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

采集伪原创洗稿,实现文章创作的方法

各位写手小伙伴们,今天要和大家分享一些关于伪原创的方法和经验,希望这些建议能够在你们的写作之旅中派上用场。 首先我们需要明确一下,伪原创并不是鼓励抄袭,而是一种在保留原文核心思想的同时,通过巧妙的方式改写&a…

Qt应用开发(Quick篇)——布局类与布局模块

一、前言 实际 应用中,布局是常用的功能,布局最直观的就是提供空间使用率,改善空间的流动和模块之间的重叠,让界面更加的美观。 二、布局类Layout 2.1 介绍 将Layout类型的对象附加到布局的子元素上,提供有关该项的特…

在AWS Lambda上部署标准FFmpeg工具——自定义层的方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 打包FFmpeg3 创建Lambda的Layer4 测试4.1 创建Lambda函数4.2 附加FFmpeg层4.3 添加测试代码4.4 运行测试 参考文献 FFmpeg被广泛应用于音/视频流处理领域。对于简单的需求&#…

阿里云Arthas使用——在日志没有输出异常情况下,如何进行线上bug定位 stack命令 和 trace命令

前言 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类…

FreeRTOS-Plus-CLI移植

FreeRTOS-Plus-CLI移植 Fang XS.1452512966qq.com如果有错误,希望被指出,学习技术的路难免会磕磕绊绊量的积累引起质的变化 介绍 FreeRTOS-Plus-CLI是FreeRTOS的组件之一。FreeRTOS-Plus-CLI提供了一种简单、小巧、可扩展且RAM高效的启用方法方便Free…

JS的监听事件

在JavaScript中,你可以使用监听器来捕获和处理不同类型的事件。通过添加事件监听器,你可以指定当特定事件发生时要执行的函数。 以下是几种常见的监听事件的方法: 1. addEventListener():用于在目标元素上添加事件监听器。它接受…

解决 IIS HTTP 403 错误问题

最近上传附件 IIS 总是返回 HTTP 403 错误,在踩了很多配置的坑之后,终于把问题解决了,于是特意写了本篇文章。 虽然网络上的文章不少,大都写的没错,但是他们没有很清晰的把问题描述清楚,导致一些新手在看这些文章跟着处理问题的时候难免会踩坑,于是我就以我踩坑的经验写…

分享67个节日PPT,总有一款适合您

分享67个节日PPT,总有一款适合您 67个节日PPT下载链接:https://pan.baidu.com/s/1oU-UUCV_69e8Gp5Y6zrzVA?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

使用Python发送HTTP请求的最佳实践:让你的代码锐利如刀!

在当今的数字化时代,使用Python发送HTTP请求已经成为了许多开发人员的日常任务。无论是进行API交互、网页爬取,还是构建网络服务,掌握Python的HTTP请求技巧都至关重要。但是,要想在竞争激烈的编程领域中脱颖而出,你需要…

python模块 — json

1、什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON由键值对构成,键和值之间使用冒号分隔,键值对之间使用逗号分隔,并且整个结构包含在花括号中。 不同编程语言都提供了处…

uniapp-hubildx配置

1.配置浏览器 (1)运行》运行到浏览器配置》配置web服务器 (2)选择浏览器安装路径 (3)浏览器安装路径: (3.1) 右键点击图标》属性 (3.2)选择目标&…

FutureTask

1. 作用 异步操作获取执行结果取消任务执行&#xff0c;判断是否取消执行判断任务执行是否完毕 2. demo public static void main(String[] args) throws Exception {Callable<String> callable () -> search();FutureTask<String> futureTasknew FutureTask&…

OpenGL ES eglCreatePbufferSurface() 和 eglCreateWindowSurface() 的对比和使用

一、介绍 相同点&#xff1a; eglCreatePbufferSurface 和 eglCreateWindowSurface 都是 OpenGL ES 中用于创建不同类型的EGL表面的函数&#xff0c;以便在OpenGL ES中进行渲染。 不同点&#xff1a; 选择使用哪种表面类型取决于你的需求。如果你只是需要在内存中进行离屏渲…

Lombok详解

目录 前言:注解速查1.Lombok概念2.安装Lombok3. 使用Lombok3.1 😊@Data3.2 @Getter@Setter3.3 @NonNull3.4 @Synchronized3.5 @ToString:自动生成toString()方法3.6 @Cleanup3.7 @EqualsAndHashCode前言:注解速查 @NonNull : 用在成员方法或者构造方法的参数前面,会自动产…

chrom谷歌浏览器删除表单填写记录

鼠标光标移动到删除的信息 shiftdel就可以删除了

基于Python的图书管理系统的设计与实现

点我完整下载&#xff1a;基于Python的图书管理系统的设计与实现.docx 基于Python的图书管理系统的设计与实现 Design and Implementation of a Book Management System based on Python 目录 目录 2 摘要 3 关键词 3 第一章 引言 4 1.1 研究背景 4 1.2 研究目的 5 1.3 研究意义…