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/
转载文章受原作者版权保护。转载请注明原作者出处!