Well here we go again. So I totally get what your thinking here, "that how can a variable stand for things like functions, when on the wiki, I learned that they can only stand for numbers, strings, UserData, etc?"
And I have the answer! First off, the wiki page gives a great description of how variables work (variables, but it can be confusing sometimes).
--Here's a great description for variables to start off with: "Variables are a set of symbols (such as numbers and letters) that stand for a string, number/set of numbers, or userdata.
Ok, so we know that, but how do things like functions and the Instance.new() statement?
--If you don't already know what functions are, here's a great link --> http://wiki.roblox.com/index.php?title=Function.
--Specifically, a pre - difened can do two things, one a it will change certain objects properties (e.x. Destroy() will set that objects properties to nil), or two will return a value (e.x. GetChildren() returns all the children of an object). So basically, this type of function will always output the data from the outcome (if the outcome has added, destroyed, changed, or specified a piece of data)
The only way we can grab the data that has been outputted from that function, is from a variable (e.x. Part = Instance.new("Part") will add a new part, because the outcome of that function is a new part).
I you need any more clarification, feel free to ask questions!