![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Why does this code say "hi" before "hey"? Discusss. window.onload = function() { alert("hey"); test.hi; } test = {} test.hi = alert("hi"); |

#3
| |||
| |||
|
|
levinsont... (AT) gmail (DOT) 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 |
#4
| |||
| |||
|
|
On May 24, 1:08 am, Gregor Kofler <use... (AT) gregorkofler (DOT) at> wrote: levinsont... (AT) gmail (DOT) 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. |
#5
| |||
| |||
|
|
alert("hi"); |
#6
| |||
| |||
|
|
On May 24, 7:58 pm, "levinsont... (AT) gmail (DOT) com" <levinsont... (AT) gmail (DOT) com wrote: On May 24, 1:08 am, Gregor Kofler <use... (AT) gregorkofler (DOT) at> wrote: levinsont... (AT) gmail (DOT) 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. |
![]() |
| Thread Tools | |
| Display Modes | |
| |