newproxy
I was looking up newproxy on the RobloxWiki and I noticed it creates a new userdata.
Now, my question is, what is the point of attaching specific meta-methods such as __index and __call, etc when you can attach it to a table aswell with the same functionality?
Why would you use a metatable with userdata values with new proxy instead of just using an array?
Why
local proxyValue = newproxy(true)
getmetatable(proxyValue).__index = {seraplz= function() print("@sera plz") end}
proxyValue.seraplz()
Vs
local meta = {
__index = {seraplz = "@sera plz"}
}
local array = setmetatable({},meta)
print(array.seraplz)
Other than the obviously shorter way of doing the meta-table.
What are some strong advantages and disadvantages for both?

2 comments
I'm still slightly confused. Can you provide an example of how it is used for indirect access?
The article I linked gives a better overview of it than I can: http://www.lua.org/pil/13.4.4.html