scope - 如何正确处理 typescript 中的范围

标签 scope typescript angular

我有一个关于上下文的问题。在 typescript 中处理上下文的正确方法是什么?如果我理解正确,我有闭包问题?当我在对象(类)中的函数内部调用函数时,它就是一个闭包,对吗?

但是我必须使用 self = this 还是 typescript 有更好的方法?因为我真的不喜欢这个解决方案。我不想束缚每一件小事。

我正在谈论的例子:

export class SomeClass {
    private declaration;

    constructor() {}

    ngOnInit(){
        var self = this;
        some code
        var interval = setInterval(function() {
            self.someFunction();
        }, 1000);        
    }

    someFunction() {
      something
    }
}

谢谢你的建议

最佳答案

在这种情况下,您可以使用 arrow function语法,它将捕获 this 的值以按照您的预期引用类原型(prototype):

ngOnInit() {
    some code
    var interval = setInterval(() => {
        this.someFunction();
    }, 1000);        
}

关于scope - 如何正确处理 typescript 中的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36876105/

相关文章:

typescript 匿名类

Angular:在 ngFor 中获取当前索引

html - 如何始终在 mat-select 中独立于当前选择显示占位符

css - 在 HTML 标签的属性中使用范围变量

.net - 我应该在线程启动后保留对线程的引用吗?

angular - 如何使用 Ionic 3 和 Angular 4 创建可重用组件

typescript - 编译时正常,在带有 webpack 的 typescript 中使用命名空间中的类时出现运行时错误

javascript - 为什么 RxJs 在长按键时记录 2 个事件?

python - 避免 for 循环变量切入 Python 全局命名空间的方法

random - 为什么这个 rand use 语句在 rust 中起作用?