首页 > 解决方案 > 如何在 TypeScript 类的另一个方法中调用一个方法

问题描述

感谢所有帮助的人。这个问题让我有点发疯(是的,我已经搜索过了)。我收到“不是函数”错误。

我觉得这应该很容易。我只是试图从另一个方法调用一个方法是一个 ts 类。我正在尝试使用一个箭头函数(未显示),这对我来说有点新,但我什么也做不了。感谢所有帮助。

namespace ScriptDemo
{
    export class FunctionExample
    {
        Counter: number;

        CalculateStuff(): void
        {
            this.Counter++;
            this.UpdatePage(this.Counter);
        }

        UpdatePage(counter: number): void
        {
            let label: HTMLElement = <HTMLElement>document.getElementById("output-label");
            label.innerHTML = counter.toString();
        }
    }

    window.onload = function ()
    {
        let functionExample = new FunctionExample();
        let button: HTMLButtonElement = <HTMLButtonElement>document.getElementById("UpdateCounterButton");
        button.addEventListener("click", functionExample.CalculateStuff);
    };
}
 

截图在这里

标签: typescript

解决方案


您的问题是:

button.addEventListener("click", functionExample.CalculateStuff);

instance.CalculateStuff这不是打字稿问题,如果您作为回调传递,在纯 Javascript 中也会发生同样的事情。

这会将函数从类中取出并使用set toCalculateStuff调用它。要么使用箭头函数来确保正确保存,要么使用.thisundefinedthisbind


推荐阅读