librelist archives

« back to archive

关于oop.lua

关于oop.lua

From:
Victor Young
Date:
2011-10-19 @ 01:25
lglib中实现了一套oop机制,但在使用时需要注意,如果类中的某项属性是一张表,此时修改表的内容,可能会修改到基类的内容,可以考虑在extend时进行表的复制

Re: [bamboo] 关于oop.lua

From:
Tang Daogang
Date:
2011-10-19 @ 04:34
a.b.c = xx
的情况,a是实例,b是a的父类(以上)中的一个table,而不是a的table,c是这个table中的一个(新)元素,本来是想给a生成一个table
key b, 再在b中赋一个新key c,结果,a.b却引用到了真正含有表b的那个层级的类A中去了,所以a.b.c就修改到了类A的内容。

a.c = xx 就不会出现这个情况。

很魔幻的过程。


2011/10/19 Victor Young <littlehaker@gmail.com>

>
> lglib中实现了一套oop机制,但在使用时需要注意,如果类中的某项属性是一张表,此时修改表的内容,可能会修改到基类的内容,可以考虑在extend时进行表的复制




-- 
Nothing is impossible.