与Javascript的最大不同是,TypeScript支持OOP(面向对象)编程,这也是笔者选择Egret,弃用Cocos2d-js的最直接的原因(下一版本的Javascript据说会支持OOP,即ECMAScript 6)。
类
面向对象最基本的概念就是“类”。众所周知,类,是对具有相同属性的对象的抽象描述。
这是个类的例子:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter("world");
语法跟C#与Java的语法类似。上面的例子定义了一个Greeter类。这个类有三个部分,一个string类型的greeting属性,一个构造方法constructor,一个greet方法。类的内部使用this来表示自己,与C#与Java也是类似的。
最后一行使用new关键字定义了一个Greeter实例,通过构造方法constructor将属性greeting的值带入到这个实例中,进行初始化。