鍍金池/ 問答/HTML/ vue中箭頭函數(shù)與普通函數(shù) this指向

vue中箭頭函數(shù)與普通函數(shù) this指向

問題描述:
封裝了axios方法,getAxios()是成功時(shí)的callback
為什么會(huì)出現(xiàn)下面代碼中的結(jié)果

我的想法:
1.()=>{} 等價(jià)于 function(){}.bind(this)
2.在嚴(yán)格模式下,沒有直接調(diào)用者的函數(shù)中的this是 undefined
自己隱約知道原因,但又不確定,希望能得到明朗的答案。

  created () {
    this.getBannerList()
  },

  methods: {
    getBannerList () {
      getAxios('/bannerApi', (res) => {
        console.log(this)      //結(jié)果:VueComponent對(duì)象 
      })  
      
      getAxios('/bannerApi', function (res) {
        console.log(this)      //結(jié)果: undefined
      })
    }
  }
回答
編輯回答
好難瘦

普通函數(shù)的this指向你可以看一下這篇博文,希望對(duì)你有幫助https://segmentfault.com/a/11...

2017年5月4日 18:53
編輯回答
抱緊我

普通方法內(nèi)部有this的綁定

返回 undefined 是因?yàn)檫@是一個(gè)異步的回調(diào) 在嚴(yán)格模式下 this 就是 undefined

箭頭函數(shù)不綁定 this 而且 箭頭函數(shù)的this在要向上一個(gè)作用域鏈去查找 而且 this 只在定義時(shí)確定 不是運(yùn)行時(shí)確定

2018年7月25日 10:53
編輯回答
撿肥皂

箭頭函數(shù)指向外部,類似于bind(this), 使用vue,babel插件會(huì)將其裝換成ES5.

2017年9月5日 22:14