ECMAScript 6 最有意思的部分之一就是箭头函数。正如其名,箭头函数由 “箭头”(=>)这种新的语法来定义。
其实在别的语言中早就有了这种语法结构,不过他们叫拉姆达表达式。
箭头函数语法
箭头函数可以赋值给变量,也可以像匿名函数一样直接作为参数传递。
|
|
如果函数体内只有一行代码,则包裹函数体的 大括号 ({ })完全可以省略。如果有return,return关键字也可以省略。
如果函数体内有多条语句,则 {} 不能省略。
|
|
如果箭头函数只有一个参数,则包裹参数的小括号可以省略。其余情况下都不可以省略。当然如果不传入参数也不可以省略
|
|
如果想直接返回一个js对象,而且还不想添加传统的大括号和return,则必须给整个对象添加一个小括号 ()
|
|
使用箭头函数实现函数自执行
|
|
箭头函数中无this绑定(No this Binding)
在ES5之前this的绑定是个比较麻烦的问题,稍不注意就达不到自己想要的效果。因为this的绑定和定义位置无关,只和调用方式有关。
在箭头函数中则没有这样的问题,在箭头函数中,this和定义时的作用域相关,不用考虑调用方式
箭头函数没有 this 绑定,意味着 this 只能通过查找作用域链来确定。如果箭头函数被另一个不包含箭头函数的函数囊括,那么 this 的值和该函数中的 this 相等,否则 this 的值为 window。
|
|
看下面的一段代码:
|
|
说明:
1.箭头函数作为一个使用完就扔的函数,不能作为构造函数使用。也就是不能使用new 的方式来使用箭头函数。
2.由于箭头函数中的this与函数的作用域相关,所以不能使用call、apply、bind来重新绑定this。但是虽然this不能重新绑定,但是还是可以使用call和apply方法去执行箭头函数的。
无arguments
虽然箭头函数没有自己的arguments对象,但是在箭头函数内部还是可以使用它外部函数的arguments对象的。
|
|
访客的ip和所在地址: 访问时间: 当前时间: