最近公司准备把小游戏让我们来维护,是使用layabox开发的,但是之前,我完全没有游戏开发经验,也没有用过laya,对里面的一些概念完全不了解,但是赶鸭子上架,那是不得不学了,B站上的教学视频也不多,看官网的教程又有点乏味,有点蛋疼。
下午看了下教程,看看我还记得多少,
场景,节点,文本,图片,,,,然后就是TS了,还有class,说实话,js里面的class我就用得贼少,基本没用过,所以,看到大量使用class的语法的我就有懵逼,那今天就以ts里面class的基本写法来结束吧。
我看class里面有很多关键字,这些都是我之前不了解的。
说实话,es6,es7,ts,这里面类里面的关键字总是让我傻傻分不清楚
现在大概是知道了,不过不能灵活运用
es6 static 静态方法
es7 的提案里面有加上了静态属性
TS里面把这些都实现了,并且还扩展了,比如public private protected之类的,还有什么抽象类呀,....,这些跟java或者c#据说是很像的,但是其他的强类型语言我也没学过呀,反正都是大神们说的,我什么都不知道。
照旧贴一下我的学习demo代码吧
class Animal1 { constructor(name) { this.name = name; } say() { console.log(`hello,my name is ${this.name}`); return `hello,my name is ${this.name}`; } } let a1 = new Animal("大黄"); // a1.say(); class Dog extends Animal { constructor(name) { super(name); console.log(this.name); } crow() { // console.log(super); console.log(super(), "xxxxxx"); let res = `mow ` + super.say(); // console.log(res); } } let d1 = new Dog("二哈"); d1.crow(); /*** * ES6中的类有几种关键字 * * 静态方法,就是类自己身上的方法,不是实例的方法 * static create(){xxxxx} * ES7里面又有一些提案, * 1,比如实例属性的写法 * es6里面之前都是写在constructor构造函数里面的,比如,this.name=name * 现在不用了,直接写在类里面 * 比如class Animal{ * name:'jack' * constructor(){ * xxxxxx * } * } * 实例就可以直接使用name这个属性 * 2,静态属性 * static num=43; * * 上面的这些在ts里面都被实现了。 * TS里面新增了三种修饰符 * 1,public 修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是 public 的 * 2,private 修饰的属性或方法是私有的,不能在声明它的类的外部访问 * 3,protected 修饰的属性或方法是受保护的,它和 private 类似,区别是它在子类中也是允许被访问的 * * * ***/
还贴一个ts教程里面的一段代码
abstract class Animal { public name; public constructor(name) { this.name = name; } public abstract sayHi(); } class Cat extends Animal { public sayHi() { console.log(`Meow, My name is ${this.name}`); } } let cat = new Cat("Tom"); cat.sayHi();
说实话,本来ts就想学,但是呢,一直没有在项目中去使用,所以一直是停留在文档学习阶段,各种东西学了就忘,很尴尬,现在这个laya其实也是推荐使用ts来开发,所以,现在ts切切实实的要搞起来了,不然真的代码都看不懂啦。