Translations:User:Psychoslave//Lua reference manual translation stub/1313/en

Metatable fields that affect the table itself are:
 * __index
 * This is used when a table access  would return nil. If the value of this field is a table, the access will be repeated in that table, i.e.   (which may invoke that table's metatable's __index). If the value of this field is a function, the function will be called as  . The rawget function bypasses this metamethod.


 * __newindex
 * This is used when assigning a key to a table  where   would return nil. If the value of this field is a table, the assignment will be repeated in that table, i.e.   (which may invoke that table's metatable's __newindex). If the value of this field is a function, the function will be called as  . The rawset function bypasses this metamethod.


 * __call
 * This is used when function call syntax is used on a table, . The value must be a function, which is called as something like.


 * __mode
 * This is used to make tables holding weak references. The value must be a string. By default, any value that is used as a key or as a value in a table will not be garbage collected. But if this metafield contains the letter 'k', keys may be garbage collected if there are no non-weak references, and if it contains 'v' values may be; in either case, both the corresponding key and value are removed from the table. Note that behavior is undefined if this field is altered after the table is used as a metatable.