首页 > 解决方案 > TypeScript 箭头函数作为类返回问题中另一个函数中的返回

问题描述

看看这段代码。当我查看控制台时,我有这样的事情:

() => {
            return this.msg;
        }

老实说,它对我来说是有线的。还有一件事。当我更改为 console.log(this.msg) 返回 this.msg 时,控制台中没有发生任何事情。我做错了什么?

class Problemo {
  msg: string = "hello"

  printFunction() {
    var vv = () => {
      return this.msg
    }

    return vv
  }
}

var pp = new Problemo()
var xx = pp.printFunction()

console.log(xx)

@解决方案。 我忘了括号 console.log(xx())

标签: typescript

解决方案


您的printFunction方法声明了一个在调用时vv将打印的函数this.msg,因此 的值pp.printFunction()将是一个函数,您将其分配给xx并记录到控制台。这就是为什么您会看到函数的来源:

console.log(xx) // outputs: () => { return this.msg; }

如果您xx改为调用,您将看到以下消息:

console.log(xx()) // outputs: "hello"

TypeScript 游乐场


推荐阅读