对lua中__newindex的理解

阅读了文章后用流程图来总结一下

 

 

__newindex的规则:

a.如果__newindex是一个函数,则在给table不存在的字段赋值时,会调用这个函数。
b.如果__newindex是一个table,则在给table不存在的字段赋值时,会直接给__newindex的table赋值。

应用:

1.__newindex是一个function时,可用来控制一个表中不存在的字段的赋值行为,例如当不希望子类覆盖父类方法或者修改父类成员时,可以对子类__newindex进行修改。

2.保护__index里面的元素不被修改,让其只读

...后续补充

posted on 2017-04-26 18:08  益达的博客  阅读(1776)  评论(0编辑  收藏  举报

导航