Callback confusion

callback is an argument but the question is how it’s working as a function after invoke the myMap function ?
Your code so far

// The global variable
var s = [23, 65, 98, 5];

Array.prototype.myMap = function(callback) {
var newArray = [];
// Only change code below this line
for(let i=0;i<this.length;i++){
newArray.push(callback(this[i]))  
}
// Only change code above this lin
return newArray
};

var new_s = s.myMap(function(item) {
ret