Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类返回问题中的另一个函数中的TypeScript Arrow函数作为返回_Typescript - Fatal编程技术网

类返回问题中的另一个函数中的TypeScript Arrow函数作为返回

类返回问题中的另一个函数中的TypeScript Arrow函数作为返回,typescript,Typescript,看看这个代码。 当我看控制台时,我有这样的东西: () => { return this.msg; } 老实说,这对我来说是天生的。 还有一件事。当我更改返回console.log(this.msg)的this.msg时,console中什么都没有发生。我做错了什么 class Problemo { msg: string = "hello" printFunction() { var vv = () =>

看看这个代码。 当我看控制台时,我有这样的东西:

() => {
            return this.msg;
        }
老实说,这对我来说是天生的。 还有一件事。当我更改返回console.log(this.msg)的this.msg时,console中什么都没有发生。我做错了什么

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

console.log(xx) // outputs: () => { return this.msg; }
如果改为调用
xx
,您将看到以下消息:

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

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

console.log(xx) // outputs: () => { return this.msg; }
如果改为调用
xx
,您将看到以下消息:

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

问题是什么?据我所见,一切都按预期进行。问题是什么?从我看到的情况来看,一切都按预期进行。糟糕的是,我忘记了括号。非常感谢。糟糕的是,我忘了括号。非常感谢。