Your passing an object to the animate method. An object is everything between (and including) the {} braces.
Javascript is a bit different to PHP in that you can create objects (and functions) on the fly. To better illustrate this, take a look at this.
var myObj = {
left: $(this).parent().get(0).id.substring(3)
}
var myMouseOutFuntion = function() {
$('#nav_highlight').stop().animate(myObj, 300);
}
$('#nav_list').mouseout(myMouseOutFunction);
Note that I have created a myObj object which is passed to the animate() method. I have also created a myMouseOutFunction() function which is passed to the mouseout() method.
I'm not saying this is how it should be done. This is just a more verbose example to try and make it a little easier to see what is actually going on.