Transcript from the "Callback vs Higher-order Functions" Lesson
>> Which of these was our callback, and which of these was our higher order function? Katy? Just call on Katy. Katy, which is our higher order function, would you say?
>> And which is our callback?
>> The multiply by two.
>> Yeah, and the placeholder for all those instructions, exactly.
[00:00:19] Our higher order function. We hear this esoteric sounding term, this obscure sophisticated higher order functions. This is a function that can take in another function. That's it. We've seen everything. This is higher order function. And our callback function is a little baby function that can be passed in as an input.
[00:00:37] Higher order function, and it's a higher order function because it It's so grand, it can have other functions inside it, that's why. It's of a higher order. It can have whole other functions, like a level above. Callback function is the little baby one that gets passed in. So the outer function that takes in the function is a higher-order function.
[00:00:56] Function we passed in is our callback function. Just to note, higher-order functions, I said takes in a function or, by the way, return out a function. Any function that can take in a function or takes in a function or returns it out, by definition is known as a high-order function.
[00:01:13] It's just a term we use to describe. We don't need to declare it a high-order function. You just declare it a function, if it takes in a function or returns out a function It's a high order function. That's it. So, call backs and higher order functions simplify our code and keep it dry.
[00:01:32] Look at this, before we had an independent function, individual copy of a ran too.And the only thing that was changing each time was his little operator and operand. That we applied to each element of the array. What a waste of all that code we're writing, to get a new function for each time.
[00:01:53] So instead, we create a generalized higher-order function, where we leave a placeholder. And all the repeated code is always in that general single version of the function. Leave a placeholder, and only when we invoke, call, execute the function, do we fill in What exactly we are going to do to each element of the array.
[00:02:12] And that's it. We determined our data, when we call our function. And we determined some of the specifics. The only bit that changes each time, the specifics of our functionality only when we call, invoke, execute our higher order. More general, parametrize, such as me putting a place holder.
[00:03:25] And then pass in a callback and execute a callback inside, now we reach closure.