On May 24, 7:58 pm, "levinsont...@gmail.com" <levinsont...@gmail.com>
wrote:
On May 24, 1:08 am, Gregor Kofler <use...@gregorkofler.atwrote:
levinsont...@gmail.com meinte:
test = {}
test.hi = alert("hi");
hi gets the "result" of (window.)alert assigned. And before returning
this result the alert is being popped up. What you were supposedly
looking for is
test.hi = function() { alert("hi"); };
However in your onload listener this.hi won't do the trick (just like
now). It must be test.hi()
Gregor
--http://photo.gregorkofler.at:::Landschafts- und Reisefotografiehttp://web.gregorkofler.com::: meine JS-Spielwiesehttp://www.image2d.com ::: Bildagentur für den alpinen Raum
Hi Gregor,
Thanks for your answer.
So, instead of assigning a function to test.hi that popped up an
alert, I was actually assigning window.alert to test.hi?
I guess I still don't understand why the interpreter executed test.hi
first.
You didn't assign "window.alert" to "test.hi", you assigned
'window.alert("hi")'. There's a big difference. You can assign
functions to variables, but that's not what you did. You assigned the
RESULT of calling 'window.alert("hi")' to "test.hi". Obviously, at
the time of the assignment, it actually called 'window.alert("hi")',
displaying the alert box, and then assigning the (meaningless) result
of calling that function to the variable "test.hi".
You saw the "hi" alert before the other alert because the other alert
only would have executed on completion of window load.