es6 中的箭头函数和普通函数有什么区别?
2023-12-13 05:19:24
1、普通函数中的 this 总是指向调用它的那个对象,
箭头函数没有自己的 this,他的 this 永远指向其定义环境,任何方法都改变不了其指向,如 call()、bind()、apply()。(正是因为它没有 this,所以也就不能用作构造函数,也没有原型对象)
箭头函数不能当作构造函数,也就是说,不能使用 new 命令,否则会报错。
箭头函数没有原型属性。
箭头函数不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。
箭头函数不能使用 arguments 对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
变量提升:由于 js 的内存机制,function 的级别最高,而用箭头函数定义函数的时候,需要 var(let、const)关键字,而 var 所定义的变量不能得到变量提升。故箭头函数一定要定义于调用之前。
拓展:this 的指向问题?
1、普通函数中,this 指向其函数的直接调用者;
2、箭头函数中,this 指向其定义环境,任何方法都改变不了其指向,如 call( )、bind()等;
3、构造函数中,如果不使用 new,则 this 指向 window,
?如果使用 new 创建了一个实例,则 this 指向该实例。
4、window 内置函数中,如 setInterval,setTimeout 等,其内部的 this 指向 Window。
5、匿名函数的 this 指向 Window。
6、apply()、call()、bind()可以改变 this 的指向
文章来源:https://blog.csdn.net/NXZ13419918873/article/details/134954602
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!