On 15 September 2011 20:19, Matthew Bramer <remym...@gmail.com> wrote:
> I have another small question as a result of the code here. With this line > of code: > jsllc.GetHashTable( listName, options, function (hashTable) { > > the variable hashTable hasn't been defined within the function call. It's > defined within GetHashTable as: hashTable. How does that work? I thought > all vars had to be declared prior to using them... Also, in the line above, > if I call the variable something else like: bugaboo > Would that affect this function from working? This is where I get lost with > callbacks and how mysterious parameters appear out of nowhere... Like using > jQuery's .each(). With that function call, you can do: > .each(function(index, element) { } > or > .each(function() { } > and both are totally valid. Bizzarro... What you're doing there is declaring an anonymous function. When you do: function add(x, y) { return x + y; } add(4, 5); Then in the add function, x and y will be bound to 4 and 5 (for that invocation). The same thing happens with jQuery.each(). The inside of the each function will look a bit like this: $.each = function (array, callback) { for (var i = 0, len = array.length; i < len; i++) { callback(i, array[i]); } }; So, index and item will be bound to each index and each item of the array. Make sense? The same thing happens with your callback function - the argument will be bound when the function is invoked by whoever you passed it to. Hope that makes sense :) Nick -- Nick Morgan http://skilldrick.co.uk @skilldrick Save our in-boxes! http://emailcharter.org -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/jsmentors@jsmentors.com/ To search via a non-Google archive, visit here: http://www.mail-archive.com/jsmentors@googlegroups.com/ To unsubscribe from this group, send email to jsmentors+unsubscr...@googlegroups.com