获得徽章 10
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
赞了这篇沸点
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
#每天一个知识点#
箭头函数(Arrow Function)与普通函数(Normal Function)之间的区别主要有以下几点:
1. 语法简洁:箭头函数的语法更加简洁,可以使用更短的代码来定义函数。
○ 普通函数的语法:function functionName(parameters) { statements }
○ 箭头函数的语法:(parameters) => { statements }
2. this 的绑定:箭头函数没有自己的 this 值,而是继承父级作用域的 this 值。
○ 普通函数的 this 值在运行时根据调用方式动态确定,可以是调用者对象、全局对象或通过 .call()、.apply()、.bind() 方法显式绑定。
○ 箭头函数的 this 值在定义时确定,并且始终指向外层作用域中的 this 值,无法通过 .call()、.apply()、.bind() 方法进行修改。
3. 没有 arguments 对象:箭头函数没有自己的 arguments 对象,但可以访问外部作用域中的 arguments 对象。
○ 普通函数内部可以使用 arguments 对象来访问函数的参数列表。
○ 箭头函数无法直接使用 arguments 对象,但可以通过访问外部作用域的 arguments 对象来获取参数值。
4. 不能用作构造函数:箭头函数不能使用 new 关键字创建对象实例,不能作为构造函数使用。
○ 普通函数可以使用 new 关键字创建对象实例,用于构造新的对象。
○ 箭头函数无法使用 new 关键字创建对象实例,尝试使用 new 会抛出错误。
5. 没有原型属性:箭头函数没有自己的 prototype 属性。
○ 普通函数可以作为构造函数,拥有自己的 prototype 属性,可以通过原型链进行属性和方法的继承。
○ 箭头函数没有自己的 prototype 属性,因此无法作为构造函数使用,也无法进行原型继承。
箭头函数(Arrow Function)与普通函数(Normal Function)之间的区别主要有以下几点:
1. 语法简洁:箭头函数的语法更加简洁,可以使用更短的代码来定义函数。
○ 普通函数的语法:function functionName(parameters) { statements }
○ 箭头函数的语法:(parameters) => { statements }
2. this 的绑定:箭头函数没有自己的 this 值,而是继承父级作用域的 this 值。
○ 普通函数的 this 值在运行时根据调用方式动态确定,可以是调用者对象、全局对象或通过 .call()、.apply()、.bind() 方法显式绑定。
○ 箭头函数的 this 值在定义时确定,并且始终指向外层作用域中的 this 值,无法通过 .call()、.apply()、.bind() 方法进行修改。
3. 没有 arguments 对象:箭头函数没有自己的 arguments 对象,但可以访问外部作用域中的 arguments 对象。
○ 普通函数内部可以使用 arguments 对象来访问函数的参数列表。
○ 箭头函数无法直接使用 arguments 对象,但可以通过访问外部作用域的 arguments 对象来获取参数值。
4. 不能用作构造函数:箭头函数不能使用 new 关键字创建对象实例,不能作为构造函数使用。
○ 普通函数可以使用 new 关键字创建对象实例,用于构造新的对象。
○ 箭头函数无法使用 new 关键字创建对象实例,尝试使用 new 会抛出错误。
5. 没有原型属性:箭头函数没有自己的 prototype 属性。
○ 普通函数可以作为构造函数,拥有自己的 prototype 属性,可以通过原型链进行属性和方法的继承。
○ 箭头函数没有自己的 prototype 属性,因此无法作为构造函数使用,也无法进行原型继承。
展开
评论
1
赞了这篇沸点
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
![[嘿哈]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_67.9ceed33.png)
![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)