javascript - Angular 2 组件变量范围和引用

标签 javascript angular typescript

有没有办法避免总是必须附加“this”来引用私有(private)组件变量或函数?

例如,以下内容将导致“foo”出现“找不到名称”错误

export class SomeComponent {
    private foo = 5;

    someMethod(){
        console.log(foo);
    }
}

要修复此问题,我需要将“this”附加到 foo 变量,如下所示:

console.log(this.foo);

我完全支持变量的强识别,但考虑到大多数 Angular 组件的尺寸较小,这似乎过于严格。

最佳答案

JavaScriptTypeScript 中,您需要使用 this 关键字引用该类中的类的字段和函数

来自 Documentation of TypeScript

让我们看一个简单的基于类的示例:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");

如果您以前使用过 C# 或 Java,那么语法应该看起来很熟悉。我们声明一个新类 Greeter。该类具有三个成员:一个名为greeting 的属性、一个构造函数和一个greet 方法。

您会注意到,在类中,当我们引用类中的一名成员时,我们会在前面加上此..这表示它是成员访问权限。

关于javascript - Angular 2 组件变量范围和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40304424/

相关文章:

javascript - 如何在 PrimeNG 中使用 RowGroup 对数据进行分组?

angular - 我的 Angular 应用程序在调试时没有命中断点?

typescript - 在内部匿名函数中引用外部命名空间函数

javascript - 拖动后获取点信息

javascript - jquery动态添加/行到表中

javascript - 如何确保浏览器能够支持 **{get X() {}}**

typescript - 为什么 any 会在没有强制转换的情况下转换为更具体的类型

javascript - 阻止某些事件监听器为事件触发,但允许父监听器触发

javascript - Angular 8自动触发点击事件不起作用

typescript - TypeScript 可以通过 "extracted" bool 逻辑推断可区分联合的类型吗?