在项目中 使用 一个类或者 对象时。会用 export 和 import 将要用到的 类或者对象 导出 导入并使用 ,但有的时候 需要 一个全局的类或单例对象 或者 懒得 写 export和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开发技巧
如果有相关全局问题 可以点 联系作者 加我微信 交流