箭头函数——为什么存在?

2018-07-08  本文已影响11人  _贺瑞丰

1. 是什么

提供了简写语法糖

没this参数

解决了this的问题

funcA(arg1,arg2) = funcA.call(this,arg1,arg2) this没传就是空的,一般是调用的东西
let obj = {
    name:'obj'
    hi(){
        console.log(this.name)
    }
}
obj.hi.call(obj)

往往很多时候 我们定义的this很不可控的,你不使用call显示传递this,那么this默认传递与函数封装了this

var controller = {
    el:'app'
  init(){
      $(this.el).on('click',this.onClick)
  },
  click(){console.log('asd')}
}
controller.init()
controller.init.call(controller)

上面两个this是一样的吗? 很多封装过的函数,你不知道 this 传递了什么参数,要么看文档,要么看源码

解决上面的问题 在init内部将this保存下来,保持this的统一
使用箭头函数,就消除this,内外部就统一了

最终效果

实践

let array = [1,2,3,4,5]
array.map(num=>num*num)
上一篇 下一篇

猜你喜欢

热点阅读