static,public,private在函数上的用法规则

暂且先不管深层次的合理性,从实际作用来说
static的方法:跨类可访问,但不可用this来使用本类的那些@property的东东,例如UI上的那些控件
public的方法:跨类访问需要先实例化,但可以用this调用本类的其他函数
private的方法:跨类完全不可访问,但可以用this调用本类的其他函数

我就发觉一个很尴尬的情况,有一个函数我想要跨类访问,但感觉又没必要为此new一个类出来,照理说应该用static,但用了static后,又不能在这个函数里用this操作UI控件了。

想请问下大佬们,在这样的规则下,一般大家都是怎么规划自己的代码的?我现在没想到好的办法,就是避免在需要使用UI控件时出现跨类,但感觉又不是很方便,求大佬指点。

单例模式,
1,在类外定义一下变量 let static s_instance:xxx = null
2,在类里写一下接口 static getInstance()
static getInstance(){ if(!s_instance){ return new xxx(); } return s_instance; }
3, 使用 xxx.getInstance().func() //func就是你要调用的接口

1赞

一般这种不会这么耦合,而是采用event传递,具体可以搜索下eventMgr

回复错了 回复楼主的 打扰了

static 是类方法,this 是指类本身,你可以理解为方法中的 this = 类名,而不特指任何对象
另外两个是对象方法,只有new 出来的对象才能调用的方法,方法中的 this = 类对象
如果你想在 static 中调用对象方法,那这个函数可以添加参数,参数传调用处的类对象
如果你想在对象方法中调用 static 方法,那你可以直接 类名.类方法