Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >普通函数和箭头函数的区别

普通函数和箭头函数的区别

原创
作者头像
用户10562852
发布于 2023-05-12 06:51:52
发布于 2023-05-12 06:51:52
42800
代码可运行
举报
文章被收录于专栏:前端不难前端不难
运行总次数:0
代码可运行

1、this指向问题(重要)

MDN的描述是箭头函数不会创建自己的this他只会从自己的作用域链的上一层继承this,这里我们可以理解为this指向外层第一个普通函数(如果没有,则指向全局对象(可通过globalThis访问));而普通函数中this指向其调用者。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let obj = {
    name: 'zs',
    fn: () => {
        // this指向上一级作用域链的this,此处就是 Window 对象(浏览器环境中)
        console.log(this) 
    }
    fn2: function() {
        return () => { console.log(this) }
    }
}
console.log(globalThis) // Window 
obj.fn() // Window 
obj.fn2()() // {name: 'zs', fn: ƒ, fn2: ƒ}

1、箭头函数中的this指向不可以修改,通过 call() apply() 方法调用一个函数时,只能传递参数(不能绑定 this---译者注),他们的第一个参数会被忽略。(这种现象对于 bind 方法同样成立)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let name = 'win'
    let o = {count: 0}
    let obj = {
    fn: (a, b) => {
        console.log(this, a, b)
    }
}
// 可以传参但是第一个参数无效
obj.fn.apply(o, [1, 2]) // Window 1 2

2、不绑定有arguments

但是我们可以使用剩余参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const fn = (...args) => {
    // console.log(arguments); // 报错:ReferenceError: arguments is not defined
    console.log(args); // [1, 2, 3]
}
fn(1, 2, 3)

3、不能和new一起用,会报错

也就是说箭头函数不能被用作构造函数

4、没有prototype

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const Fn = () => {}
console.log(Fn.prototype) // undefined
let f = new Fn(); // Uncaught TypeError: Fn is not a constructor

以上就是关于箭头函数和普通函数的区别,最重要的就是关于this指向问题,有更多的箭头函数的知识大家可以看看MDN上的内容,里面有很详细的讲解,希望本篇文章能够帮助大家解决一些疑惑,感谢您的观看。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
k8s集群备份与迁移
Velero 是一个用Go语言开发的开源工具,用于 Kubernetes 集群的备份、恢复、灾难恢复和迁移。
SRE运维手记
2024/09/13
4080
k8s集群备份与迁移
【每日一个云原生小技巧 #52】Kubernetes备份恢复
Kubernetes(K8s)备份恢复是一个关键的过程,用于在发生数据丢失、故障或灾难情况时,恢复Kubernetes集群和其上运行的应用程序到之前的状态。
郭旭东
2024/01/04
4160
【每日一个云原生小技巧 #52】Kubernetes备份恢复
Portworx Essentials + Velero:备份Kubernetes应用
Portworx近期发布了免费的Essentials版本。(https://portworx.com/announcing-portworx-essentials/)。Essentias)。
Portworx
2020/05/08
1.3K0
使用 Velero 备份还原 Kubernetes 集群资源
作者:仇明,中国移动云能力中心软件研发工程师,专注于云原生、微服务、算力网络等领域。 简介 Velero前身是Heptio Ark ,是由GO语言编写的一款用于灾难恢复和迁移工具,可以安全地备份、恢复和迁移Kubernetes集群资源和持久卷。 Velero主要提供以下能力 • 备份Kubernetes 集群资源,并在资源丢失情况下进行还原 • 将集群资源迁移到其他集群 • 将生产集群复制到开发和测试集群 Velero 主要组件 • Velero 组件主要包括服务器端和客户端两部分 • 服务端:运行在你Ku
博文视点Broadview
2023/04/12
1.6K0
使用 Velero 备份还原 Kubernetes 集群资源
使用Velero实现K8S集群资源备份到对象存储COS
开源工具 Velero(旧版本名称为 Heptio Ark)可以安全地备份和还原、执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷。在容器服务 TKE 集群或自建 Kubenetes 集群中部署 Velero 可以实现以下功能:
Lcry
2022/11/29
1.7K0
使用Velero实现K8S集群资源备份到对象存储COS
使用 Velero 备份还原 Kubernetes 集群
Velero(https://velero.io)(可以提供备份和还原 Kubernetes 集群资源和持久卷的能力,你可以在公有云或本地搭建的私有云环境安装 Velero,可以为你提供以下能力:
我是阳明
2021/10/08
1.2K1
Velero 学习笔记
Velero是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移Kubernetes集群资源和持久卷。
东风微鸣
2022/04/21
1.8K0
Velero 学习笔记
kubernetes备份恢复之velero
Velero 地址:https://github.com/vmware-tanzu/velero Velero属于VMWare开源的Kubernetes集群备份、恢复、迁移工具. 可以提供Kubernetes 备份功能更,在Kubernetes集群出现问题之后,能够快速的恢复. 并且也提供了集群迁移功能,可以将Kubernetes资源迁移到其他集群. Velero 将备份的信息在对象存储中,默认情况下可以使用 AWS、Azure、GCP 的对象存储. 对于K8s集群数据的备份和恢复,以及复制当前集群数据到其他集群等都非常方便。可以在两个集群间克隆应用和命名空间,来创建一个临时性的开发环境。
iginkgo18
2021/01/29
6.4K0
从自建k8s向托管EKS迁移
--snapshot-location-config 卷快照位置的配置。 格式是key1=value1,key2=value2
葫芦
2021/06/04
9340
你有快速备份和迁移 Kubernetes 集群应用以及持久化数据的需求吗,Velero 助你秒实现!
Heptio Velero ( 以前的名字为 ARK) 是一款用于 Kubernetes 集群资源和持久存储卷(PV)的备份、迁移以及灾难恢复等的开源工具。
iMike
2019/11/07
4.1K0
你有快速备份和迁移 Kubernetes 集群应用以及持久化数据的需求吗,Velero 助你秒实现!
K8S备份、恢复、迁移神器 Velero
Kubernetes 集群备份一直是我们的痛点。虽然可以通过Etcd v3备份与恢复来实现K8S集群备份,但是这种备份很难恢复单个 Namespace。
YP小站
2020/07/01
8.3K1
使用velero进行kubernetes灾备
使用velero可以对集群进行备份和恢复,降低集群DR造成的影响。velero的基本原理就是将集群的数据备份到对象存储中,在恢复的时候将数据从对象存储中拉取下来。可以从官方文档查看可接收的对象存储,本地存储可以使用Minio。下面演示使用velero将openstack上的openshift集群备份恢复到阿里云的openshift上。
charlieroro
2020/03/24
4.3K1
备份与迁移k8s集群神器
前言 一般来说大家都用etcd备份恢复k8s集群,但是有时候我们可能不小心删掉了一个namespace,假设这个ns里面有上百个服务,瞬间没了,怎么办?
院长技术
2020/06/12
7960
Kubernetes 最佳实践:综合指南
翻译自 Kubernetes Best Practices: A Comprehensive Guide 。
云云众生s
2024/03/27
3700
【每日一个云原生小技巧 #63】Kubernetes 卷快照 Volume Snapshots
假设有一个名为 my-persistent-volume 的持久卷,我们要为它创建一个快照。
郭旭东
2024/01/14
3950
Velero 是怎样对 Kubernetes 资源实现备份还原的?
每个 Velero 操作——按需备份、定时备份、还原——都是一个自定义资源,用 Kubernetes 自定义资源定义(CRD)定义并存储在 etcd 中。Velero 还包括处理自定义资源以执行备份、还原和所有相关操作的控制器.
philentso
2022/12/16
1.1K0
使用 Velero 跨云平台迁移集群资源到 TKE
李全江(jokey),腾讯云工程师,热衷于云原生领域。目前主要负责腾讯云 TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 概述 Velero[1] 是一个非常强大的开源工具,可以安全地备份和还原,执行灾难恢复以及迁移Kubernetes群集资源和持久卷,可以在 TKE 平台上使用 Velero 备份、还原和迁移集群资源,关于如何使用请参阅 使用对象存储 COS 作为 Velero 存储实现集群资源备份和还原[2] 和 在 TKE 中使用 Velero 迁移复制集群资源,本文将介绍
腾讯云原生
2021/03/29
1.1K0
【每日一个云原生小技巧 #18】Storage Classes
Storage Class 是 Kubernetes 中定义不同存储类型的一种方法。它为管理员提供了一种描述他们提供的存储的方式,并允许用户以抽象的方式使用这些存储。Storage Classes 可以定义特定的存储提供者(如 AWS EBS、Azure Disk、GCE Persistent Disk 等)、预配置的策略(如备份策略、加密)、IO性能、访问模式等。
郭旭东
2023/11/08
2570
【每日一个云原生小技巧 #18】Storage Classes
Longhorn,Kubernetes 云原生分布式块存储
Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。
为少
2021/08/26
1.2K0
Longhorn,Kubernetes 云原生分布式块存储
KubeGuard:为单机环境定制的 Kubernetes 应用与节点数据备份恢复工具
在许多 Kubernetes 环境中,尤其是 K3S、边缘计算节点或本地开发测试环境,往往没有配置复杂的 PVC(Persistent Volume Claim)和 CSI(Container Storage Interface)快照等高级功能。这些环境通常要求备份工具简单易用,能够在没有依赖云服务或高复杂性的存储解决方案的情况下,提供数据备份与恢复的能力。KubeGuard 正是为这些单机环境定制的备份工具,它避免了对 PVC 和 CSI 快照等复杂功能的依赖,提供了一种轻量级的备份与恢复解决方案。
行者深蓝
2025/05/29
1090
推荐阅读
相关推荐
k8s集群备份与迁移
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验