VS代码chrome调试,为什么这个未定义?

时间:2018-02-10 11:13:37

标签: visual-studio-code

我正在使用VS代码和chrome调试器扩展。下面的代码执行没有错误并产生预期的结果,但是我看到了这个'这个'在WATCH部分中未定义。

class Q {
    constructor() { 
        this.arr = [1,2,3]
    }
    log(e) {
        console.log(e)
    }
    test() {
        this.arr.forEach(e => {
            this.log(e); // this is undefined when debugging
        })
    }
}

const f = new Q().test()

我做错了什么?

2 个答案:

答案 0 :(得分:0)

为避免与this JavaScript关键字发生冲突,在编译时,TypeScript将this重命名为_this。尝试注意_this

答案 1 :(得分:-2)

class Q {

  arr = []

  constructor() { 
     this.arr = [1,2,3]
  }
  log(e) {
     console.log(e)
  }
  test() {
     this.arr.forEach(e => {
         this.log(e);
     })
  }
}

const f = new Q().test()