In JavaScript, functions are first class members which means they can be treated much like other data types in language. For example, you can assign a function to a variable, pass it as an argument, return it from function etc.
Given this, functionName simply refers to the function object while functionName() invokes the function that is referenced by functionName.
This assigns the function refered to by functionName (which doesn't even have to be the actual function name, it could be a variable that was assigned to the function - an alias as it were! For example, var functionName = myOtherFunction; - this creates an alias for myOtherFunction)
window.onload = functionName;
while this invokes the function referenced by functionName and assigns it's result
window.onload = functionName();