JavaScript ES6 箭头函数 匿名函数 普通函数
箭头函数
箭头函数是ES6的新特性,简化了函数的写法
普通函数
this指向调用者
具有prototype
this指向可以被call/apply/bind改变
普通函数的this在运行时创建,箭头函数的this是声明时确定
匿名函数
表现为function后面不带名字的函数,但是可以用一个变量接收,通过执行这个变量来执行这个函数
this指向window
具有prototype
this指向可以被call/apply/bind改变
箭头函数
1 没有原型prototype
2 因为没有原型,因此没有super用于访问原型属性
3 没有arguments,如果有一定是父级作用域的arguments
4 箭头函数自身没有this,它的this来源于作用域链(作用域相对于函数,原型相对于对象),this指向依然是父级作用域的this指向。普通函数的this在运行时创建,箭头函数的this是声明时确定
5 箭头函数是匿名函数,所谓匿名函数,就是function后面不带名字的函数,但是可以用一个变量接收,通过执行变量来执行这个函数
6 箭头函数中this指向无法被修改,如bind、call、apply
7 因为无法修改this指向,因此不能作为构造函数使用(构造函数的this永远指向由它实例化出来的对象,箭头函数无法对创建出来的实例进行this绑定),它和new关键字一起使用时会抛出异常
8 因为无法作为构造函数,因此不能使用new.target关键字返回创建实例的构造函数(类)本身
new.target的使用
//new.target 用于方法内
//当方法作为构造时,返回创建该实例的构造函数
//当方法不作为构造函数时,返回undefined
//可用于判断是否使用new 关键字创造了实例
function Animal(){
console.log(new.target)
}
Animal()// undefined
new Animal();// Animal
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!