关于CCClass方法定义的小白问题

浏览Creator的Demo时发现定义CCClass对象方法提供了下面这两种形式

cc.Class({
    create: function (param1, param2) {
        // do something
    },

    init (value) {
        // do something
    },
});

这两种方法声明有什么不同呢?

  1. create和init都不是引擎相关的函数,你喜欢用哪个名字就用哪个名字。
  2. 省略:function是ES6的新写法,效果跟写:function是一样的(实际上引擎会把ES6的写法编译成ES5后再执行)。但是别用ES6的箭头函数定义类的成员函数:
cc.Class({
    init: (value) => {
        // do something
    }
});

这会导致init中的this不指向这个Class。

1赞