在项目中 使用 一个类或者 对象时。会用 export 和 import 将要用到的 类或者对象 导出 导入并使用 ,但有的时候 需要 一个全局的类或单例对象 或者 懒得 写 expor和import 这时候 我们通常 会把 这个类 或者 对像挂在window上。 但是 在用ts写项目时 用window.obj是 会有问题的。

我们可以这样写一个全局类:

let Http = new class {
 log(){
    console.log("Gclass:http");
 }
};
window["Http"] = Http;

这是一个挂在window上的全局类。 我们可以在任意文件中使用他的方法

Http.log();

我们可以这样写一个全局对象:

let http = new class {
 log(){
    console.log("Gclass:http");
 }
}();
window["http"] = http;
或者:
let Http = new class {
 log(){
    console.log("Gclass:http");
 }
};
let http = new Http();
window["http"] = http;
在 全局对象中,http对象是唯一的 。

调用http中的方法
http.log()

关于继承:
1)挂在window上的 类是可以被继承的。所以 这样写会很灵活
2)基类的命名顺序要先于 子类的命名
比如父类:Base子类 App 这样 就会导致 出错,子类第一个字母先于父类的第一个字母顺序,所以先初始化子类,这样父类会因为找不到报错。
可以将子类 改为 Capp这样 就可以了。关于命名规则 自己可以想办法 去改。

关于作用:

用这种方法声明的 全局类/对象中不能出现 export 和 import 这样会导致该类/对象 全局作用失效

长安下图二维码,关注微信公众号 亮亮同学TT获取更多 cocoscreator开发技巧
在这里插入图片描述

如果有相关全局问题 可以点 联系作者 加我微信 交流

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐