第159题 this读代码题

    class Foo{
      f1() {consosle.log('this1',this)}
      f2 = () => {consosle.log('this2',this)}
      f3 = () => {consosle.log('this3',this)}
      static f4() {consosle.log('this4',this)}
    }
    const f = new Foo()
    f.f1()
    f.f2()
    f.f3.call(this)
    Foo.f4()
    const user = {
      count:1,
      getCount:function(){
        return this.count
      }
    }
    console.log(user.getCount()) 
    const func = user.getCount
    console.log(func())
```**答案**  
```js
    class Foo{
      f1() {consosle.log('this1',this)}
      f2 = () => {consosle.log('this2',this)}
      f3 = () => {consosle.log('this3',this)} 
      static f4() {consosle.log('this4',this)}
    }
    const f = new Foo()
    f.f1()  // this指向实例
    f.f2()  // class中写箭头函数,this指向实例
    f.f3.call(this) // 箭头函数 this不能通过call、apply修改
    Foo.f4()  // this指向Foo本身
    const user = {
      count:1,
      getCount:function(){
        return this.count
      },
      getCount1: () =>{
        // 箭头函数this找父级的this,this指向window
        return this.count
      },
      getCount2:function(){
        setTimeout(()=>{
          console.log(this.count) // 箭头函数this找父级的this,this指向user
        },1000) 
      },
    }
    console.log(user.getCount())  // 1 this指向user
    const func1 = user.getCount
    console.log(func1()) // undefined this指向window
    const func2 = user.getCount2
    console.log(func2()) // undefined this指向window
Last Updated:
Contributors: leeguooooo