lua-类的实现
实现思想
- 1 用一个“全局”表存class类型
- 2 定义本类基础的“成员”,如super,构造函数,new函数等等
- 3 针对本类型的声明,创建成员表(放成员的表-vtbl)且给其设置元表。定义某成员时,如果不存在则存储在成员表。获取某成员时,在成员表找。
(其中,包含__newindex和_index事件(键名:元方法<func/table>)前者是为了将成员的定义记录在表中。) - 4 以本类型作为key,将成员表存储记录住。
- 5 如果super存在,获取某成员时,去全局表里查询,赋值给本类成员表。--用__index元方法实现