如何在匿名函数中访问“this”? [复制]

Posted

技术标签:

【中文标题】如何在匿名函数中访问“this”? [复制]【英文标题】:How do I access "this" in an anonymous function? [duplicate] 【发布时间】:2015-10-08 04:41:00 【问题描述】:

我在编写匿名函数时无法访问this

public class Game extends JPanel 
    public void action() 
        new Thread(new Runnable() 
            @Override
            public void run() 
                this.repaint();
            
        ).start();
    
    @Override
    public void paint(Graphics g) 
        // Paint stuff
    

我无法声明我的类的新实例,因为我无法将类设置为我的新类实例而不会出现静态/非静态错误。

【问题讨论】:

Game.this.repaint() @MadProgrammer 非常感谢! 对不起,我不知道它叫内部类。 从技术上讲,在您的情况下,它是一个匿名类,但对于实例内部类也是如此;) 【参考方案1】:

当你写作时

 public void action() 
        new Thread(new Runnable() 
            @Override
            public void run() 
                this.repaint();
            
        ).start();
    

由于你在写匿名​​内部类Runnable,所以你写this.repaint().时指的是Runnable匿名类

引用Game类重绘,语法为Game.this.repaint()

【讨论】:

以上是关于如何在匿名函数中访问“this”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Vue中匿名函数和箭头函数的this

无法在具有匿名功能的函数内使用“this”

闭包和匿名函数

如何从javascript中的一个线性箭头函数返回匿名对象? [复制]

函数——基本语法,嵌套匿名高阶递归函数

JavaScript中匿名函数this指向问题