this._super() 调用父类同名函数,是非js官方支持的语法。
混淆代码过后会报错
super.方法名() js 只支持在构造函数,其他方法不支持。 ts才支持全部支持。
后面面试时候我一定会问js和ts super关键字有什么区别,看看有几个人知道这个问题。
只能修改成:
onLoad () {
父类名.prototype.onLoad.call(this);
},
this._super() 调用父类同名函数,是非js官方支持的语法。
混淆代码过后会报错
super.方法名() js 只支持在构造函数,其他方法不支持。 ts才支持全部支持。
后面面试时候我一定会问js和ts super关键字有什么区别,看看有几个人知道这个问题。
只能修改成:
onLoad () {
父类名.prototype.onLoad.call(this);
},
什么公司,名字报一下,下一次我肯定答上
反问面试官new.target能干嘛
哈哈哈哈哈无敌了
这个不太对
至于楼主说的this._super()这个方法 有点不多的印象 但是ts中是不能用的吧
this._super跟js/ts没有关系, 是cocos自己实现的.
混淆后会报错, 看了源码就明白怎么回事了: CCClass.js
明天我把demo 出来吧
试了一下2.4的结果 不在构造函数里 也是起作用的
还是coco中cc.class的中处理的问题,为了兼容不支持es6的情况,做了些其他操作
因为你在这里用的是Cocos的CCClass实现的继承,而不是js的class和extends关键字实现的继承。
Cocos为了实现this._super的机制,会在CCClass参数中识别到extends后去覆盖子类中和父类共有的方法,这会导致js的关键字super失效。如果正常使用js的class和extends关键字实现继承是不会影响到super的。
具体可以看源码CCClass.js中的boundSuperCalls
是的,所以才有在每一个子类中调用this._super()函数,掉到父类的函数中,原生js中是没有这种功能的
可以,你去他公司面试可以满分
面试的岗位是面试官是吧
对换一个不折磨求职者的 