【发布时间】:2014-05-21 18:52:06
【问题描述】:
任务:我需要在 Typescript 中构建一个类,在它自己的构造函数中调用它自己的一些方法。
问题:以下示例代码所代表的实际代码将编译成功,但在 Javascript 控制台中测试时,它没有。
示例:
export class volumeEQ
{
constructor(ctx:any)
{
this.ctx = ctx; // Audio context saved into member variable of class
this.setupAudioNodes(); // Sets up nodes made out of audio
}
setupAudioNodes()
{
this.sourceNode.connect(this.ctx.destination); // Connect to destination
}
}
技术:Typescript 编译器没有this.setupAudioNodes() 的问题,但是一旦在浏览器的 Javascript 控制台中调用为 Javascript,我就会收到错误 Uncaught TypeError: undefined is not a function。实际上,这是 Javascript 的 this. 语法的问题,并且很容易与它混淆。但是因为我是用 Typescript 开发的,所以我想要一个更加 Typescript 风格的解决方案。
问题:如何在 Typescript 的构造函数中调用类的方法?
【问题讨论】:
-
在正常情况下从构造函数调用方法是微不足道的,但是代码示例中没有足够的信息来重现您遇到的问题。
-
在正常情况下从构造函数调用方法应该是微不足道的。能够从同一个类的构造函数中调用公共方法是有意义的。 Typescript Compiler 认为这是可能的,并且成功编译它是有道理的。 Javascript 的
this.使用起来非常混乱,这太糟糕了。 -
@Jthora 还有youtube.com/watch?v=tvocUcbCupA&hd=1
-
@basarat 很棒的视频,这有助于我了解我是如何对
this.感到困惑的 -
投票结束,因为该问题实际上并不包含重现所声称的问题所需的信息(请参阅答案和 OP 的 cmets)。
标签: javascript html syntax typescript grammar