this指向问题

88 阅读1分钟
var a = 1
var b = {
  a: 2,
  c: () => {
    var a = 3
    console.log('c',a,this.a)
  },
  d: function() {
    var a = 4
    console.log('d',a,this.a)
  },
  e: () => {
    var a = 5
    return () => {
      var a=6
      console.log('e',a,this.a)
    }
  },
 f: function()  {
    var a = 5
    return () => {
      var a=6
      console.log('f',a,this.a)
    }
  },

}

b.c()  // c 3 1
var m = b.c
m() // c 3 1

b.d() // d 4 2
var n = b.d
n() // d 4 1

b.e()() // e 6 1
var p = b.e
p()()   // e 6 1
var p = b.e()
p()   // e 6 1

b.f()()  // f 6 2
var o = b.f
o()() // f 6 1
var o = b.f()
o() // f 6 2