深入浅出es6(箭头函数)

=>是function的简写形式,支持expression和statement两种形式。同时一点很重要的时是他拥有词法作用域this值,帮助你很好的解决this的指向问题,这是一个很酷的方式,可以帮助你减少一些代码的编写,先来看看它的语法。

var arr = [1,2,3];

arr.map(item => item +1);
arr.map((item, index) => item + 1);
arr.forEach(item => {
    if(item ===1) {
        temp.push(item);
    }
})

箭头函数内部没有constructor方法,也没有prototype,所以不支持new操作,但是他对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时候的this,而非执行时,我们通过一个例子来理解:

var o = {
    x:1,
    func:function(){
        console.log(this.x);
    },
    test:function(){
        setTimeout(function(){
            this.func();
        }, 100);
    }
}
o.test();

上面的代码会出现问题,因为this的指向从o变成了全局;那如果变成了这个样子的:

var o = {
    x:1,
    func:function(){
        console.log(1);
    },
    test:function(){
        setTimeout(() => {
            this.func()
        }, 100)
    }
}
o.test();

我们还需要注意一点的就是this是不会改变this指向对象的,我们知道call和apply可以改变this的指向,但是在箭头函数中是无效的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值