定义类
var Sprite = cc.Class({
name: "sprite"
});
var obj = new Sprite();
- 定义的类的类型名为 Sprite 可以用 new 构造一个对象。
- 也可以不定义类名,直接构造类。
构造函数——ctor/ __ ctor__
ctor 不允许含有参数,如果构造时需要用到参数,必须使用__ctor__
var Sprite = cc.Class({
ctor: function () {
cc.log(this instanceof Sprite); // true
}
});
继承——extends
// 父类
var Shape = cc.Class();
// 子类
var Rect = cc.Class({
extends: Shape
});
父类构造函数
- 不论子类是否有定义构造函数,子类实例化前父类的构造函数都会被自动调用。
- 不需要尝试调用父类的构造函数,否则父构造函数就会重复调用。
- 在一些很特殊的情况下,父构造函数接受的参数可能和子构造函数无法兼容。这时开发者就只能自己手动调用父构造函数并且传入需要的参数,这时应该将构造函数定义在__ ctor__中。