是ES6标准新增的函数
x => x*x
///相当于
function (x) {
return x*x;
}
箭头函数只包含一个表达式时,{ ... } 和 return 都可以省略掉;但当包含多条语句时,就不能省掉了。
如果参数不止一个,就需要用括号()括起来:
(x, y) => x*x + y*y;
() => 1002;
(x, y, ...) => {
var i, sum = x + y;
for(i = 0; i < arrays.length; ++i){
sum += arrays[i];
}
return sum;
}
如果 return 的是一个对象,要用括号括起来:
x => ({ Object: x })
this
箭头函数与匿名函数的区别:箭头函数内部的 this 是词法作用域,由上下文确定。
this 在箭头函数中已经按照词法作用域绑定了,所以用 call() 或 apply() 调用箭头函数时,无法对 this 进行绑定。
【
JavaScript
call() 方法:可以用来调用所有者对象作为参数的方法,通过call(),可以使用属于另一个对象的方法。
apply()方法:能劫持另一个对象的方法,继承另一个对象的属性。
(区别戳)
】