Js箭头函数

Js箭头函数

箭头函数是​ ​ES6​​新增的语法,提供了一种更加简洁的函数书写方式,类似于匿名函数,并且简化了函数定义。

完整写法

完整写法类似于匿名函数,省略了​ ​function​​关键字。

省略小括号

当参数只有​ ​1​​个时,可以省略小括号,当没有参数或者两个以上的参时不能省略小括号。

省略大括号

当函数体只有一行语句时,可以省略​ ​{}​​​,并且会自动​ ​return​​这条语句的返回值。

省略小括号与大括号

当满足上述两个条件时,小括号与大括号可以全部省略。

返回对象字面量

省略写法返回对象时注意需要使用​ ​()​​​将对象包裹,否则浏览器会把对象的​ ​{}​​解析为箭头函数函数体的开始和结束标记。

没有单独的this

箭头函数没有单独的​ ​this​​​,在箭头函数的函数体中使用​ ​this​​​时,会取得其上下文​ ​context​​​环境中的​ ​this​​​。箭头函数调用时并不会生成自身作用域下的​ ​this​​​,它只会从自己的作用域链的上一层继承​ ​this​​​。由于箭头函数没有自己的​ ​this​​​指针,使用​ ​apply​​​、​ ​call​​​、​ ​bind​​​仅能传递参数而不能动态改变箭头函数的​ ​this​​指向。

利用箭头函数的​ ​this​​​指向特点可以解决一些问题,例如常见的回调函数中​ ​this​​指向问题。

对于这个问题可以将​ ​this​​值分配给封闭的变量来解决。

也可以使用​ ​bind​​​来事先将函数执行时的​ ​this​​绑定。

使用箭头函数可以直接编写回调函数而不改变​ ​this​​​指向,箭头函数不会创建自己的​ ​this​​​,它只会从自己的作用域链的上一层继承​ ​this​​。

不绑定arguments

箭头函数不绑定​ ​arguments​​​,在箭头函数函数体内取得​ ​arguments​​​只是引用了封闭作用域内的​ ​arguments​​​,不会生成自身作用域下的​ ​this​​​和​ ​arguments​​值。

不能用作构造器

箭头函数不能用作构造器,使用​ ​new​​实例化时会抛出异常。

没有原型属性

箭头函数没有​ ​prototype​​属性。

不能用作函数生成器

箭头函数不能用作​ ​Generator​​​,​ ​yield​​关键字通常不能在箭头函数中使用,除非是嵌套在允许使用的函数内。

每日一题

Original: https://blog.51cto.com/u_15659138/5339654
Author: WindrunnerMax
Title: Js箭头函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/517710/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球