views:

150

answers:

2

What is the difference between these two functions?

1:

$(document).ready(function myfunc() {
   function dosomething() {
      // do something
   }
});

2:

<script language="javascript">
function dosomething() {
   // do something
}
</script>
+8  A: 

The $(document).ready() function executes when the DOM has finished loading. See http://api.jquery.com/ready/

Whereas the function is not executed until called. If you were to have a call to that function, it would happen as it is loading and not wait for any external event to complete as in the former. Like:

<script language="javascript">
dosomething();
function dosomething(){
// do something
}
</script>
Dustin Laine
very very thanks for help
4thpage
+5  A: 

In the first example, your inner function dosomething() will be limited to the scope of myfunc().

In the second case, the dosomething() function will be added to the global space. It will be accessible from anywhere.

Daniel Vassallo
+1 The limited scope of functions in document ready seems to be overlooked and/or ignored by most.
Jim Schubert