当前位置: 代码迷 >> 综合 >> cocos2d-x lua 框架中 self.super.ctor(self, app) 和 self.super:ctor(app) 的区别
  详细解决方案

cocos2d-x lua 框架中 self.super.ctor(self, app) 和 self.super:ctor(app) 的区别

热度:80   发布时间:2023-11-18 01:12:52.0

今天发现了一个问题,框架中我一开始都是使用的self.super.ctor(self, app)来使用父类的构造函数,但是今天看到,lua中元表中函数的调用,  . 和 : 使用是有很大区别的, : 会默认传递一个self进去,而 . 需要自己手动传递self,作为第一个参数

所以我将self.super.ctor(self, app)改为了self.super:ctor(app),运行之后报错了

研究了一下,发现是因为这里的self不对,需要的是父类的self,而默认传递的是没有和父类合并的子类的实例self,所以报错了,解决办法就是要么全改为 :ctor(self, ...) 自己手动合并self, 或者按着框架的来

  相关解决方案