使用箭头函数的目的:引入箭头函数目的是更加更加简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更加简洁
使用场景:箭头函数更加适用于哪些本来需要匿名函数的地方
- 定义语法:
const fn = () => { }
- 使用方式一:括号里面加形参
// 箭头函数 const fn = (x) => { console.log(x); } fn(1)
- 使用方式二:如果只有一个形参,那么括号可以省略
const fn1 = x => { console.log(x); } fn1(88)
- 使用方式三:只有一行代码的时候,我们可以省略大括号
const fn2 = x => x+x; console.log(fn2(9))
- 使用方式四:箭头函数直接返回一个对象
const fn3 = (uname) => ({ name:uname }) console.log(fn3('成龙'));
注意:返回一个对象需要用需要用括号将{}包起来。
- 应用一:利用剩余变量传参的方式进行箭头函数求和
// 箭头函数的参数: // 利用箭头函数求和,我们并不知道参数几个,所以用剩余参数的写法,它将所有的参数变成一个数组 const getSum = (...arr) => { console.log('剩余参数的值为', arr); let sum = 0; for (let i=0; i< arr.length; i++) { sum +=arr[i] } return sum; } console.log(getSum(2, 3)); console.log(getSum(2, 3, 4));
- 箭头函数this的用法:箭头函数不会创建自己的this,他只会从自己的作用域链的上一层沿用this。
例:
//箭头函数内部this 是上一层this的指向,所以这个this输出的是window const fn4 = () => { console.log(this); } fn4()
对象方法箭头函数this
// 对象方法箭头函数this 对象没有作用域,所以对象中的箭头方法指向的还是window const obj = { name:"yansunda", sayHi: () => { console.log(22); console.log(this); } } obj.sayHi();对象方法的函数里面再写箭头函数的this
// 对象方法的函数里面再写箭头函数的this //只有函数里面才有this,然后箭头函数里面的this指的是上一层的this,所以sayHi的调用者是obj1,所以this指向obj1 const obj1 = { name:'yansunda', sayHi:function(){ console.log(this); let fn = () => { console.log(333); console.log(this);///箭头函数指的是sayHi中的this,而sayHi的调用者是obj1,所以this指向obj1 console.log(this.name); } fn() } } obj1.sayHi()
标签:ES6,const,log,箭头,console,sayHi,函数 From: https://www.cnblogs.com/yansunda/p/18435882