对lua中__newindex的理解

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

__newindex的规则:

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

应用:

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

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

...后续补充

原文地址:https://www.cnblogs.com/xyida/p/6769992.html