是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 })
如果不想用return返回,内容代码就要用{ }括起来:
const b=(a)=>{a+5};
console.log(b(6)); //undefined ,未返回内容
否则会返回结果:
const b=(a)=>a+5;
console.log(b(6)); //返回:11
如果在函数体内, 想直接返回布尔值
const b=(v) => v== 4
console.log(b(6))
或者用()括住函数体
const b=(v) => (v== 4)
console.log(b(6))
不能用 { },否则返回的是undefined
const b=(v) => {v== 4}
console.log(b(6))
用 { },正确写法是:
const b=(v) => {return v== 4}
console.log(b(6))
this
箭头函数与匿名函数的区别:箭头函数内部的 this 是词法作用域,由上下文确定。
this 在箭头函数中已经按照词法作用域绑定了,所以用 call() 或 apply() 调用箭头函数时,无法对 this 进行绑定。
JavaScript
call() 方法:可以用来调用所有者对象作为参数的方法,通过call(),可以使用属于另一个对象的方法。
apply()方法:能劫持另一个对象的方法,继承另一个对象的属性。
(区别戳)
来源:https://blog.csdn.net/qq_38735931/article/details/94717773