箭头函数(es6)

目的:引入箭头函数的目的是更简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更简洁

一.基本语法

const fn=function() {
            console.log(123);
        }
 const fn=(x)=>{
            console.log(x);
        }
        fn(1);

1.只有一个形参的时候可以省略小括号

 const fn = x => {
            console.log(x);
        }
        fn(1);

 2.只有一行代码时,我们可以省略大括号

const fn = x => console.log(x);
        fn(1);

3.只有一行可以省略return

const fn=x=>x+x;
        console.log(fn(1));
        
const fn=(x,y)=>x+y;
        console.log(fn(1,2));

4.加括号的函数体返回对象字面量表达式

const fn=(uname)=>({uname:uname});
        console.log(  fn("刘德华"));

二.箭头函数参数

1.普通函数有argumegts 动态参数

 2.箭头函数没有arguments 动态参数,但是有剩余参数..args

利用箭头函数来求和

const getSum=(...arr)=>{
            let sum=0;
            for(let i=0;i<arr.length;i++){
                sum+=arr[i];
            }
            return sum;

        }
       const result= getSum(1,2,3);
       console.log(result);

三.箭头函数中的this

1.普通函数

function fn(){
            console.log(this);//window
        }
        fn();

2.对象方法里面的this

 对象方法里面的this
        const obj={
            name :'andy',
            sayHi:function(){
                console.log(this);//obj
            }
        }
        obj.sayHi();

箭头函数不会创建自己的this,它只会从自己的作用域链的上一层沿用this。

3.箭头函数里面的this

 const fn = () => {
            console.log(this);//window
        }
        fn();

4.对象方法箭头函数的this

const obj = {
            name: 'andy',
            sayHi: () => {
                console.log(this);//window
            }
        }
        obj.sayHi();
 const obj = {
            name: 'andy',

            sayHi: function () {
                let i = 10;
                const count = () => {
                    console.log(this);//obj
                }
            }
        }
        obj.sayHi();

 注意:在开发中【使用箭头函数前需要考虑函数中 this 的值,事件回调函数使用箭头函数时,                this   为全局的 window,因此DOM事件回调函数为了简便。还是不太推荐使用箭头函数

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值