ES6箭头函数的使用

使用箭头函数的目的:引入箭头函数目的是更加更加简短的函数写法并且不绑定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()

 

 

 

posted @ 2024-09-28 09:26  洛飞  阅读(3)  评论(0编辑  收藏  举报