Another word for an upvalue in Lua is an external local variable. When you write a new function in Lua, it can access any of the local variables that have the same scope as it. That function 'closes' over those local variables which is why it's called a closure. The local variable that has been closed over by that function 'jumps up' into the new scope which is why it's called an upvalue.
https://www.quora.com/Lua-programming-language/What-are-upvalues-in-Lua
lua官网的这个解释更清晰一些
http://www.lua.org/pil/27.3.3.html