美文网首页
cocos creater 继承

cocos creater 继承

作者: 凡凡的小web | 来源:发表于2019-06-06 13:21 被阅读0次

所有成员方法都是虚方法,子类方法可以直接重写父类方法:
var Shape = cc.Class({
getName: function () {
return "shape";
}
});
var Rect = cc.Class({
extends: Shape,
getName: function () {
return "rect";
}
});
var obj = new Rect();
cc.log(obj.getName()); // "rect"

和构造函数不同的是,父类被重写的方法并不会被 CCClass 自动调用,如果你要调用的话:
1.方法一:使用 CCClass 封装的 this._super,this._super() 可以调用父类的同名函数:
var Shape = cc.Class({
getName: function () {
return "shape";
}
});
var Rect = cc.Class({
extends: Shape,
getName: function () {

    var baseName = this._super();

    return baseName + " (rect)";
}

});
var obj = new Rect();
cc.log(obj.getName()); // "shape (rect)"

2.方法二:使用 JavaScript 原生写法:
var Shape = cc.Class({
getName: function () {
return "shape";
}
});
var Rect = cc.Class({
extends: Shape,
getName: function () {

    var baseName = Shape.prototype.getName.call(this);

    return baseName + " (rect)";
}

});
var obj = new Rect();
cc.log(obj.getName()); // "shape (rect)"

如果你想实现继承的父类和子类都不是 CCClass,只是原生的 JavaScript 构造函数,你可以用更底层的 API cc.js.extend 来实现继承。

相关文章

网友评论

      本文标题:cocos creater 继承

      本文链接:https://www.haomeiwen.com/subject/hjnyxctx.html